从 .Net 代码更新构建管道变量
Update Build Pipeline variables from .Net code
我们在 Azure DevOps 中有一个构建定义,它创建一个 docker 图像并将其推送到 Azure 容器注册表。该定义有一个必须在构建时插入的管道变量。我必须从我的 .Net 代码中排队构建。我可以得到定义,但看不到如何更新管道变量。
VssBasicCredential credentials = new VssBasicCredential("",persAccToken);
VssConnection connection = new VssConnection(uri, credentials);
BuildHttpClient buildClient = connection.GetClient<BuildHttpClient>();
BuildDefinition def = buildClient.GetDefinitionAsync(projectName, definitionId).Result;
管道变量是"settable at queue time"。但是我没有找到从我的代码中做到这一点的方法。
Update Build Pipeline variables from .Net code
作为解决方法,您可以通过使用 Powershell 脚本发出以下命令来更新变量值:
"##vso[task.setvariable variable=testvar;]testvalue"
查看文档 Logging Commands 了解更多详细信息。
然后您可以使用您的 .Net 代码调用此 .ps1
。
希望对您有所帮助。
BuildDefinition 有 属性 个包含管道变量的变量。可以删除该变量,然后添加新值或更新
BuildDefinitionVariable bdv = new BuildDefinitionVariable { AllowOverride = true,
IsSecret = false, Value = "new-vaule" };
def.Variables.Remove("variable-name");
def.Variables.Add("variable-name", bdv);
buildClient.UpdateDefinitionAsync(def, projectName, def.Id);
我们在 Azure DevOps 中有一个构建定义,它创建一个 docker 图像并将其推送到 Azure 容器注册表。该定义有一个必须在构建时插入的管道变量。我必须从我的 .Net 代码中排队构建。我可以得到定义,但看不到如何更新管道变量。
VssBasicCredential credentials = new VssBasicCredential("",persAccToken);
VssConnection connection = new VssConnection(uri, credentials);
BuildHttpClient buildClient = connection.GetClient<BuildHttpClient>();
BuildDefinition def = buildClient.GetDefinitionAsync(projectName, definitionId).Result;
管道变量是"settable at queue time"。但是我没有找到从我的代码中做到这一点的方法。
Update Build Pipeline variables from .Net code
作为解决方法,您可以通过使用 Powershell 脚本发出以下命令来更新变量值:
"##vso[task.setvariable variable=testvar;]testvalue"
查看文档 Logging Commands 了解更多详细信息。
然后您可以使用您的 .Net 代码调用此 .ps1
。
希望对您有所帮助。
BuildDefinition 有 属性 个包含管道变量的变量。可以删除该变量,然后添加新值或更新
BuildDefinitionVariable bdv = new BuildDefinitionVariable { AllowOverride = true,
IsSecret = false, Value = "new-vaule" };
def.Variables.Remove("variable-name");
def.Variables.Add("variable-name", bdv);
buildClient.UpdateDefinitionAsync(def, projectName, def.Id);