2011-04-08 83 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