TFS Rest API-将参数传递给Xaml构建

TFS 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

我们正在寻找有问题的XAML构建队列,并为此使用TFSRestAPI

要对生成进行排队,我们将发布到Url

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设置它们。