TFS Rest API-将参数传递给Xaml构建
我们正在寻找有问题的XAML构建队列,并为此使用TFSRestAPI 要对生成进行排队,我们将发布到UrlTFS Rest API-将参数传递给Xaml构建,tfs,azure-devops,tfsbuild,Tfs,Azure Devops,Tfsbuild,我们正在寻找有问题的XAML构建队列,并为此使用TFSRestAPI 要对生成进行排队,我们将发布到Url https://{tfsinstance}/DefaultCollection/{teamproject}/_apis/build/builds?api-version=2.0 如文件中所述 请求的主体看起来像 { "definition": { "id":7556 }, "parameters": "{\"ExistingBuildNumber\":\"ReachClient.2
https://{tfsinstance}/DefaultCollection/{teamproject}/_apis/build/builds?api-version=2.0
如文件中所述
请求的主体看起来像
{
"definition": { "id":7556 },
"parameters": "{\"ExistingBuildNumber\":\"ReachClient.2146.8\"}"
}
对于XAML构建,调用会触发构建,但传递的参数不会传递给排队的构建。参数被传递到新样式的TFS构建中
有没有办法解决这个问题?TFSRestAPI没有提到将参数传递给Xaml构建的不同机制
我们正在使用内部部署的TFS服务器(TFS 2017更新2)。传统的XAML构建系统与vNext构建系统不同。无法使用Rest API传递所有参数。如果要使用生成定义id、原因和优先级,可以使用 然而,对于XAML构建,当对构建进行排队时,您可以直接在构建定义中传递变量来构建 作为一种解决方法,可以使用
tfsbuild.exe
(对XAML生成进行排队),也可以传递如下附加参数:
&$tfsBuild.Exe start "url" project definition /requestedFor:"$buildRequestedFor" /queue
或者使用TFS SDK,它获取表示此生成的所有流程参数的XML格式字符串。代码片段:
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的更多详细信息,请参阅此。您实际使用的是哪个参数,它在XAML构建中支持吗?建议您在XAML生成定义中手动添加参数,并对生成进行排队。查看生成是否与这些参数配合良好。这些参数可以在生成队列时设置。我似乎无法使用TFS Rest API设置它们。