我使用这段代码来确定特定构建的构建定义细节:
TfsTeamProjectCollection tpc = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(tfsUri);
IBuildServer buildServer = (IBuildServer)tpc.GetService(typeof(IBuildServer));
IBuildDetail bd = buildServer.GetBuild(buildUri);
string a = bd.BuildDefinition.Name;
如果tfsUri和buildUri指向TFS2013服务器和TFS2013构建,那么代码就可以了,但是如果我改为TFS2015 server + build(vNext build),那么bd.BuildDefinition对象将变为null。
如何使用C#TFS API获取vNext构建的构建详细信息(构建定义)?
答案 0 :(得分:3)
我猜你正在使用的TFS API不支持Build vNext,你可能不得不尝试使用REST API。
您可以使用它来获取构建定义:
https://{your-project}.visualstudio.com/defaultcollection/taeguk/_apis/build/definitions?api-version=2.0
一旦你拥有" ID"你可以使用这个电话:
https://{your-project}.visualstudio.com/defaultcollection/taeguk/_apis/build/builds?api-version=2.0&definitions={id}
我的基础是我在Visual Studio Team Services REST API文档中找到的内容。
答案 1 :(得分:0)
您的问题与我已回答的这篇文章here非常相似。但是,由于您感兴趣的是构建定义而不是单个构建,因此代码需要进行更改:
var definitions = buildClient.GetDefinitionsAsync(project: "<projectname>");
foreach (var definition in definitions.Result)
{
Console.WriteLine(definition.Name);
}