2

我有一个 IBuildDetail 变量,其中包含我需要的构建信息。

好的,但是当我检查属性 BuildAgent 时,它显示:bu​​ild.BuildAgent' 抛出了一个类型为 'System.NotImplementedException

然后我尝试检查 build.BuildController.Agents,很高兴我找到了 BuildAgent,但是这个集合中有 7 个构建代理。我只需要与我的构建相关的构建代理,而不是来自该控制器的所有构建代理。

有谁知道如何获取这些信息?(使用 IBuildDetail 变量选择构建代理名称或机器名称)

-> 我正在使用 TFS2010 api,我需要每个构建的代理是什么

4

3 回答 3

3

构建完成后,您应该能够从 IBuildDetail 的 Information (IBuildInformation) 属性中获取代理信息。您可以尝试使用以下类型获取节点:

http://msdn.microsoft.com/en-us/library/microsoft.teamfoundation.build.common.informationtypes.agentscopeactivitytracking.aspx

和领域:

http://msdn.microsoft.com/en-us/library/microsoft.teamfoundation.build.common.informationfields.reservedagentname.aspx

或者

http://msdn.microsoft.com/en-us/library/microsoft.teamfoundation.build.common.informationfields.reservedagenturi.aspx

于 2011-04-28T04:39:22.067 回答
2

就像杜特说的。
为了回答这个问题,我有机会对此进行探索。
以下适用于给定的IBuildDetail buildDetail& 访问 a IBuildServer buildService

IBuildInformation buildInformation = buildDetail.Information;
IBuildInformationNode[] buildInformationNodes = buildInformation.Nodes;
string agentUri = buildInformationNodes[0].Children.Nodes[3].Fields["ReservedAgentUri"];
IBuildAgent buildAgent = buildService.GetBuildAgent(new Uri(agentUri));
于 2012-02-29T12:10:17.750 回答
1

在 Run On Agent 范围内,您需要有一个 GetBuildAgent 活动,该活动将 BuildAgent 详细信息分配给 IBuildAgent 类型的变量。

然后,您可以访问该变量的属性以访问有关构建代理的数据:http: //msdn.microsoft.com/en-us/library/microsoft.teamfoundation.build.client.ibuildagent.aspx

注意:默认的构建工作流程已经这样做了。

于 2011-04-11T19:09:33.207 回答