2016-06-14 2 views
1

전반적으로 매우 유용한 다음 쿼리를 사용하지만 빌드를 사용하는 빌드 에이전트를 결정할 수 없습니다. 참고 : - 이것은 @ Patrick-MSFT가 제공 한 훌륭한 도움을 기반으로 작동하는 코드입니다.TFS에서 특정 빌드가 사용하는 빌드 에이전트를 어떻게 확인할 수 있습니까?

TfsTeamProjectCollection tfs = new TfsTeamProjectCollection(new Uri("***")); 
IBuildServer buildServer = (IBuildServer) tfs.GetService(typeof (IBuildServer)); 
var buildDetail = buildServer.CreateBuildDetailSpec("Team Project","Dev-CI"); 
buildDetail.MinFinishTime = DateTime.Now.Date.AddDays(-2); 
var buildResult = buildServer.QueryBuilds(buildDetail).Builds.Dump(); 
buildInformation.Nodes.Where (i => i.Type == "ActivityTracking").FirstOrDefault().Children.Nodes.Where (n => n.Type == "AgentScopeActivityTracking").FirstOrDefault().Fields["ReservedAgentUri"].Dump("Agent"); 

답변

1

빌드가 온라인 상담원에게 할당됩니다. 빌드가 완료되면 정보 (IBuildInformation) 속성 IBuildDetail에서 에이전트 정보를 가져올 수 있어야합니다. 당신은 다음과 같은 유형의 노드를 얻는 시도 할 수 있습니다 : InformationTypes.AgentScopeActivityTracking FieldInformationFields.ReservedAgentName Field 또는 InformationFields.ReservedAgentUri Field

예제 코드 : TFS build duration report by agent

+0

내가 보여 내 질문을 수정 :

IBuildInformation buildInformation = buildDetail.Information; IBuildInformationNode[] buildInformationNodes = buildInformation.Nodes; string agentUri = buildInformationNodes[0].Children.Nodes[3].Fields["ReservedAgentUri"]; IBuildAgent buildAgent = buildService.GetBuildAgent(new Uri(agentUri)); 

자세한 내용은 당신이 비슷한 질문을 참조 할 수 있습니다 당신의 피드백에 기반 해 생각해 낸 답변 - 도움을 많이 주셔서 감사합니다. – CompuChip

관련 문제