Search code examples
.nettfsbuildtfs-sdk

Getting the BuildAgent information from a Build


I have a IBuildDetail variable with the build information I need.

Okay, but when I check the property BuildAgent it's showing this: build.BuildAgent' threw an exception of type 'System.NotImplementedException

Then I tryed to check build.BuildController.Agents, it's nice I found the BuildAgent, but there are 7 build agents in this collection. I need only the build agent related to my build, not all build agents from that controller.

Anyone knows how to get that information? (Select a build agent name or machine name using an IBuildDetail variable)

-> I'm using TFS2010 api and I need to what is the agent for each build


Solution

  • It's like Duat says.
    In order to answer this question, I had the chance to explore this.
    The following worked for a given IBuildDetail buildDetail & access to 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));