C# 来自代码的队列Azure devops YAML管道不接受运行时参数

C# 来自代码的队列Azure devops YAML管道不接受运行时参数,c#,azure-devops,yaml,azure-pipelines,tfs-sdk,C#,Azure Devops,Yaml,Azure Pipelines,Tfs Sdk,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 buil

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();
var build=new build()
{
定义=定义,
项目=项目
};
var dict=新字典{{“parameter1”,“parametervalue”};
build.Parameters=JsonSerializer.Serialize(dict);
buildClient.QueueBuildAsync(build.Wait();
我得到异常无法将生成排队,因为存在验证错误或警告。必须提供“parameter1”参数的值。
任何解决此问题的想法都会很有帮助。

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


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

这里的参数不是运行时参数,而是变量。我不确定这是否公开给SDK来传递运行时参数。如果这是一个选项,您可以尝试定义默认值。@Shaykibaramczyk我不确定这是否重复。Pankaj希望通过编程方式传递运行时参数,但在您提出问题时,这些参数还不可用。@KrzysztofMadej同意,但我认为应该可以。Pankaj你能测试它吗?我测试了它,我得到了一个异常,
parameter1
是必需的。很明显,这里出了问题。但我假设这不是通过SDK公开的,或者有一种神奇的方法来传递它。我还尝试将其作为
参数传递。parameter1
但结果相同。我重新打开了问题:)