首页 > 解决方案 > 来自代码的队列 Azure devops YAML 管道不接受运行时参数

问题描述

YAML 管道如下所示

parameters:
  - name: parameter1
    type: string
steps:
task: PowerShell@2
  inputs:
    targetType: 'inline'
    script: |
      # Write your PowerShell commands here.
      Write-Host ${{ parameters.parameter1 }}


队列构建的 C# 代码就像

var build = new Build()
            {
                Definition = definition,
                Project = project

            };
var dict = new Dictionary<string, string> { { "parameter1", "parametervalue" } };
build.Parameters = JsonSerializer.Serialize(dict);
buildClient.QueueBuildAsync(build).Wait();

我得到异常由于存在验证错误或警告,无法将构建排队。必须提供“parameter1”参数的值。 解决此问题的任何想法都会有所帮助。

标签: c#azure-devopsyamlazure-pipelinestfs-sdk

解决方案


目前看来,通过 C# SDK 传递运行时参数来运行管道是不可能的。您找到了使用REST API的解决方法。

这不是 SDK 的问题。他们按照自己的节奏发展。因此,在 REST API 中可用的功能并不总是在 SDK 中同时可用。它可能在未来可用,但目前如果你想以编程方式运行它,你需要使用 REST API。


推荐阅读