2017-11-17 5 views
0

XAML 빌드를 문제가있는 큐에 넣고 TFS Rest API를 사용하려고합니다. XAML 빌드를 들어 TFS 나머지 API - Xaml 빌드에 매개 변수 전달

이 문서 https://www.visualstudio.com/en-us/docs/integrate/api/build/builds#queue-a-build

에 설명 된대로

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

, 우리가 URL에 게시되어, 빌드를 큐에

요청의 본문

{ 
"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은 (XAML 빌드 큐)이 같은 추가 인수를 전달할 수 있습니다 사용에 대한 모든 프로세스 매개 변수를 나타내는 XML 형식의 문자열을 가져옵니다 TFS SDK IBuildRequest.ProcessParameters

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

또는 사용 이 빌드. 코드 조각 : TFS SDK를 사용하는

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(); 

자세한 내용은이 blog을 참조하시기 바랍니다.