3

我正在使用这段代码来确定特定构建的构建定义细节:

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 服务器 + 构建(vNext 构建),则 bd.BuildDefinition 对象变为空。

如何使用 C# TFS API 获取 vNext 构建的构建详细信息(构建定义)?

4

2 回答 2

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文档中找到的内容。

于 2015-09-02T18:14:22.100 回答
0

您的问题与我已经回答的这篇文章非常相似。但是,由于您感兴趣的是构建定义而不是单个构建,因此代码需要进行如下更改:

var definitions = buildClient.GetDefinitionsAsync(project: "<projectname>");
foreach (var definition in definitions.Result)
    {
        Console.WriteLine(definition.Name);
    }
于 2016-05-05T17:17:07.493 回答