Azure devops 如何允许运行时参数使用空字符串?

Azure devops 如何允许运行时参数使用空字符串?,azure-devops,azure-pipelines,azure-pipelines-yaml,Azure Devops,Azure Pipelines,Azure Pipelines Yaml,我刚刚开始在Azure管道中使用运行时参数,但有一点我还不太清楚。考虑到这一点,YAML: parameters: - name: deployEnvironment displayName: Select your target environment. type: string default: Build_only values: - Build_only - TST - PP - P - name: releaseName type: string

我刚刚开始在Azure管道中使用运行时参数,但有一点我还不太清楚。考虑到这一点,YAML:

parameters:
- name: deployEnvironment
  displayName: Select your target environment.
  type: string
  default: Build_only
  values:
  - Build_only
  - TST
  - PP
  - P
- name: releaseName
  type: string
  default: ''

steps:
- task: ....
为什么releaseName是必需的参数?我希望通过指定
default:“
将其保留为空是可选的。文档中没有提到参数是否可以设置为可选

继Kryzstof的回答之后,我进行了进一步的实验,似乎一个仅由空格组成的字符串被解释为空:

似乎这一个空格被解释为空(我也尝试了多个空格)

这将产生:

myString值为“” 它的长度是0 它是空的还是空的?真的 它是空的还是空白的?真的


这真奇怪。但是,如果您将一个空格
'
替换为
'
,您将能够触发管道,甚至可以从字段中删除该空格

根据“参数不能是可选的”


将空格
''
作为默认值将起作用(如建议),但空格将保留在字段中。如果删除字段中的空格以便没有文本值,管道运行时将使用默认值
'

这很有趣,谢谢!你知道我会在哪里为Azure管道提交错误报告吗?我接受你的回答,因为它提供了一个体面的解决办法。
parameters:
- name: myString
  type: string
  default: ' '

steps:
- task: PowerShell@2
  inputs:
    targetType: inline
    script: |
      $MS = $ENV:MS
      Write-Host "myString value is '$MS'"
      Write-Host "Its length is $($MS.Length)"
      Write-Host "is it null or empty? $([System.String]::IsNullOrEmpty($MS))"
      Write-Host "Is it null or whitespace? $([System.String]::IsNullOrWhiteSpace($MS))"
  env:
    MS: ${{ parameters.myString }}