2011-04-08 53 views
2

我有一个IBuildDetail变量和我需要的构建信息。从构建中获取BuildAgent信息

好了,但是当我检查属性BuildAgent它显示这样:build.BuildAgent“扔类型的异常” System.NotImplementedException

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

任何人都知道如何获取该信息? (使用IBuildDetail变量选择生成代理名称或机器名)

- >我使用TFS2010 API,我需要的是代理为每个建

回答

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)); 
+1

幻数(0,3)是一个“禁止”! 您提供的链接的解决方案要好得多 - 例如Hamid Shahid的函数GetBuildAgentName – 2014-03-18 16:37:16

1

运行在代理范围内你需要有一个GetBuildAgent活动,它将BuildAgent详细信息分配给IBuildAgent类型的变量。

然后,您可以访问该变量的属性来获得约生成代理数据访问:http://msdn.microsoft.com/en-us/library/microsoft.teamfoundation.build.client.ibuildagent.aspx

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

+0

我使用TFS2010 API访问BuildAgent信息。我没有使用wwf。这是我的代码: 'IBuildDetail build = .....; build.BuildAgent ...' - >它抛出一个异常... – Fabito 2011-04-12 21:19:43

3