从Build获取BuildAgent信息

时间:2011-04-08 19:01:11

标签: .net tfs2010 tfsbuild tfs-sdk

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

好的,但是当我检查属性BuildAgent时,它显示了这个:build.BuildAgent'抛出了类型'System.NotImplementedException

的异常

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

任何人都知道如何获取这些信息? (使用IBuildDetail变量选择构建代理名称或计算机名称)

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

3 个答案:

答案 0 :(得分:3)

答案 1 :(得分:2)

就像Duat说的那样。
为了回答this问题,我有机会探讨这个问题。
以下内容适用于给定的IBuildDetail buildDetail&访问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));

答案 2 :(得分:1)

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

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

注意:默认构建工作流程已经执行此操作。