gpt4 book ai didi

TFS Build 2.0 C#,如何向 build/Pass Msbuild args 添加变量

转载 作者:行者123 更新时间:2023-12-04 14:12:33 25 4
gpt4 key购买 nike

我正在尝试将参数传递给 MSBuild 2.0。经过研究,似乎我需要使用变量来执行此操作,但我无法弄清楚如何将其合并到下面的队列请求中。我试过参数,但这似乎不起作用。这是我想告诉 MSBuild @"/p:OctoPackPackageVersion="+ releaseNumber.这适用于使用 IBuildRequest.ProcessParameters 的 XAML 构建。

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

最佳答案

vNext 构建系统与传统 XAML 构建系统不同,在构建构建队列时,您不能直接将变量传递给构建定义中的构建任务。您使用的代码在将构建排队之前更新了构建定义,这意味着如果变量更改,构建定义可能会不断更改。

解决方法是在构建定义中添加一个变量,例如“var1”,然后将此变量用作 MSBuild 任务的参数:
enter image description here
有了这个,您将能够在排队构建时将值传递给“var1”变量,而无需更新构建定义。

Build build = new Build();
build.Parameters = "{\"var1\":\"/p:OctoPackPackageVersion=version2\"}";

// OR using Newtonsoft.Json.JsonConvert
var dict = new Dictionary<string, string>{{"var1", "/p:OctoPackPackageVersion=version2"}};
build.Parameters = JsonConvert.SerializeObject(dict)

关于TFS Build 2.0 C#,如何向 build/Pass Msbuild args 添加变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44784909/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com