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 オブジェクトが null になります。

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 に答える