2017-11-17 1 views
0

XAMLビルドの問題をキューに入れ、そのためにTFS Rest APIを使用します。ビルドをキューにTFS Rest API - Xamlビルドへのパラメータの受け渡し

、我々は、URLに

https://{tfsinstance}/DefaultCollection/{teamproject}/_apis/build/builds?api-version=2.0 

を投稿しているXAMLビルドの要求のhttps://www.visualstudio.com/en-us/docs/integrate/api/build/builds#queue-a-build

体が

{ 
"definition": { "id":7556 }, 
"parameters": "{\"ExistingBuildNumber\":\"ReachClient.2146.8\"}" 
} 

のように見える文書で説明したようにビルドは私たちの呼び出しで起動されますが、渡すパラメータはキューに入れられたビルドに渡されません。パラメータは新しいスタイルに渡されます。TFSはうまく構築されます。

これを解決する方法についてのご意見はありますか? TFS Rest APIには、Xamlビルドにパラメータを渡すための別のメカニズムは記載されていませんか?

オンプレミスTFSサーバー(TFS 2017アップデート2)を使用しています。

+0

実際に使用しているパラメータは、XAMLビルドでサポートされていますか? XAMLビルド定義にパラメータを手動で追加し、ビルドをキューに入れることをお勧めします。ビルドがそれらのパラメータでうまく動作するかどうかを確認してください。 – Chamberlain

+0

これらは、ビルドキュー時に設定できるパラメータです。 TFS Rest APIを使用して設定することはできません。 –

答えて

0

従来のXAMLビルドシステムは、vNextビルドシステムとは異なります。 Rest APIを使用してすべての引数を渡すことはできませんでした。ビルド定義ID、理由、および優先度を使用する場合は、old REST API callを使用できます。

ただし、XAMLビルドでは、ビルドをキューに入れるときに直接ビルド定義にビルドする変数を渡すことができます。

&$tfsBuild.Exe start "url" project definition /requestedFor:"$buildRequestedFor" /queue 

Orのすべてのプロセスパラメータを表すXMLフォーマットされた文字列を取得しますTFS SDK IBuildRequest.ProcessParametersを使用します。回避策として

、どちらか(XAMLビルドキューに)tfsbuild.exeを使用しますが、このような追加の引数を渡すことができますこのビルド。コードスニペット:

var buildClient = new BuildHttpClient(new Uri(collectionURL), new 
VssCredentials(true)); 
var res = await buildClient.QueueBuildAsync(new Build 
      { 
       Definition = new DefinitionReference 
       { 
        Id = targetBuild.Id 
       }, 
       Project = targetBuild.Project, 
       SourceVersion = ChangeSetNumber, 
       Parameters = buildArg 

      }); 
      return res.Id.ToString(); 

TFS SDKを使用するための詳細は、このblogを参照してください。

関連する問題