Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Azure devops Azure管道:为什么我的变量不使用;关键词:价值;语法,但不使用“设置”;“名称、值”;语法?_Azure Devops_Yaml_Azure Pipelines_Azure Pipelines Yaml - Fatal编程技术网

Azure devops Azure管道:为什么我的变量不使用;关键词:价值;语法,但不使用“设置”;“名称、值”;语法?

Azure devops Azure管道:为什么我的变量不使用;关键词:价值;语法,但不使用“设置”;“名称、值”;语法?,azure-devops,yaml,azure-pipelines,azure-pipelines-yaml,Azure Devops,Yaml,Azure Pipelines,Azure Pipelines Yaml,我试图更改定义变量的语法,但变量不再被设置。我想如果我也在使用变量组或模板,而我没有,我只需要使用“name,value”语法,所以我想使用“key:value”语法,因为它更具可读性 但是,当我切换到可读性更强的语法时,没有设置Private.RevisionVersion、pythonPackageVersion和nugetPackageVersion变量(如第一个代码段的输出所示) “键:值”语法(不起作用): 变量: Private.majorminorvision:1.2 isFina

我试图更改定义变量的语法,但变量不再被设置。我想如果我也在使用变量组或模板,而我没有,我只需要使用“name,value”语法,所以我想使用“key:value”语法,因为它更具可读性

但是,当我切换到可读性更强的语法时,没有设置
Private.RevisionVersion
pythonPackageVersion
nugetPackageVersion
变量(如第一个代码段的输出所示)

“键:值”语法(不起作用):

变量:
Private.majorminorvision:1.2
isFinalRelease:错误
以色列候选人:错
伊莎尔法:是的
${{如果eq(变量['isFinalRelease'],'true')}:
Private.RevisionVersion:$[计数器(变量['Private.majorminorvision'],0)]
pythonPackageVersion:$[格式('{0}.{1}',变量['Private.majorminorvision'],变量['Private.RevisionVersion'])]
nugetPackageVersion:$[格式('{0}.{1}',变量['Private.majorminorvision'],变量['Private.RevisionVersion'])]
${{如果eq(变量['isReleaseCandidate'],'true')}:
Private.RevisionVersion:$[计数器(格式({0}rc',变量['Private.majorminorvision']),1]
pythonPackageVersion:$[格式('{0}rc{1}',变量['Private.majorminorvision'],变量['Private.RevisionVersion'])]
nugetPackageVersion:$[格式('{0}.{1}-rc',变量['Private.majorminorvision'],变量['Private.RevisionVersion'])]
${{if eq(变量['isAlpha'],'true')}:
Private.RevisionVersion:$[计数器(格式({0}a',变量['Private.majorminorvision']),1]
pythonPackageVersion:$[格式({0}a{1}',变量['Private.majorminorvision'],变量['Private.RevisionVersion'])]
nugetPackageVersion:$[格式('{0}.{1}-a',变量['Private.majorminorvision'],变量['Private.RevisionVersion'])]
工作:
-作业:Echo_变量
步骤:
-脚本:echo$(Private.majorminorvision)$(isFinalRelease)$(isReleaseCandidate)$(isAlpha)
-脚本:echo$(Private.RevisionVersion)$(pythonPackageVersion)$(nugetPackageVersion)
产出:

echo 1.2 False False True
echo 1 1.2a1 1.2.1-a
echo 1.2假-假-真
echo$(Private.RevisionVersion)$(pythonPackageVersion)$(nugetPackageVersion)
未设置
Private.RevisionVersion
pythonPackageVersion
nugetPackageVersion
变量


“名称、值”语法(工作):

变量:
-名称:Private.majorminorvision
价值:1.2
-名称:isFinalRelease
值:false
-姓名:以色列
值:false
-姓名:伊莎尔法
值:true
-名称:Private.RevisionVersion
${{如果eq(变量['isFinalRelease'],'true')}:
值:$[计数器(变量['Private.majorminorvision'],0)]
${{如果eq(变量['isReleaseCandidate'],'true')}:
值:$[计数器(格式({0}rc',变量['Private.majorminorvision']),1]
${{if eq(变量['isAlpha'],'true')}:
值:$[计数器(格式({0}a',变量['Private.majorminorvision']),1]
-名称:pythonPackageVersion
${{如果eq(变量['isFinalRelease'],'true')}:
值:$[格式('{0}.{1}',变量['Private.majorminorvision'],变量['Private.RevisionVersion'])]
${{如果eq(变量['isReleaseCandidate'],'true')}:
值:$[格式('{0}rc{1}',变量['Private.majorminorvision'],变量['Private.RevisionVersion'])]
${{if eq(变量['isAlpha'],'true')}:
值:$[格式('{0}a{1}',变量['Private.majorminorvision'],变量['Private.RevisionVersion'])]
-名称:nugetPackageVersion
${{如果eq(变量['isFinalRelease'],'true')}:
值:$[格式('{0}.{1}',变量['Private.majorminorvision'],变量['Private.RevisionVersion'])]
${{如果eq(变量['isReleaseCandidate'],'true')}:
值:$[格式('{0}.{1}-rc',变量['Private.majorminorvision'],变量['Private.RevisionVersion'])]
${{if eq(变量['isAlpha'],'true')}:
值:$[格式('{0}.{1}-a',变量['Private.majorminorvision'],变量['Private.RevisionVersion'])]
工作:
-作业:Echo_变量
步骤:
-脚本:echo$(Private.majorminorvision)$(isFinalRelease)$(isReleaseCandidate)$(isAlpha)
-脚本:echo$(Private.RevisionVersion)$(pythonPackageVersion)$(nugetPackageVersion)
产出:

echo 1.2 False False True
echo 1 1.2a1 1.2.1-a
echo 1.2假-假-真
回声1 1.2a1 1.2.1-a

据我所知,它们在语义上是相同的。我遗漏了什么?

我认为这是失败的,因为
isAlpha
的布尔值为
True
,您正在将其与字符串
'True'
进行比较。尝试将此表达式用于
isAlpha

${if variables['isAlpha']}
值:。。。

${if eq(变量['isAlpha'],true)}
值:。。。

如果我们按以下方式切换条件:

variables:
  Private.MajorMinorVersion: 1.2
  
  isFinalRelease: false 
  isReleaseCandidate: false 
  isAlpha: true

  ${{ if eq(variables['isFinalRelease'], 'true') }}:
    Private.RevisionVersion: $[counter(variables['Private.MajorMinorVersion'], 0)]
    pythonPackageVersion: $[format('{0}.{1}', variables['Private.MajorMinorVersion'], variables['Private.RevisionVersion'])]
    nugetPackageVersion: $[format('{0}.{1}', variables['Private.MajorMinorVersion'], variables['Private.RevisionVersion'])]
  ${{ if eq(variables['isAlpha'], 'true') }}:
    Private.RevisionVersion: $[counter(format('{0}a', variables['Private.MajorMinorVersion']), 1)]
    pythonPackageVersion: $[format('{0}a{1}', variables['Private.MajorMinorVersion'], variables['Private.RevisionVersion'])]
    nugetPackageVersion: $[format('{0}.{1}-a', variables['Private.MajorMinorVersion'], variables['Private.RevisionVersion'])]
  ${{ if eq(variables['isReleaseCandidate'], 'true') }}:
    Private.RevisionVersion: $[counter(format('{0}rc', variables['Private.MajorMinorVersion']), 1)]
    pythonPackageVersion: $[format('{0}rc{1}', variables['Private.MajorMinorVersion'], variables['Private.RevisionVersion'])]
    nugetPackageVersion: $[format('{0}.{1}-rc', variables['Private.MajorMinorVersion'], variables['Private.RevisionVersion'])]

jobs:
  - job: Echo_Variables
    steps:
      - script: echo $(Private.MajorMinorVersion) $(isFinalRelease) $(isReleaseCandidate) $(isAlpha)
      - script: echo $(Private.RevisionVersion) $(pythonPackageVersion) $(nugetPackageVersion)

产出:

echo 1.2 False False True
echo 1 1.2a1 1.2.1-a
根据测试结果,它似乎不会运行最新的条件,它只会运行前两个条件


我已经向开发人员社区报告了这个问题,您可以根据此获得最新消息,如果有任何更新,我将在这里更新。

AFAIK,变量总是字符串(只有参数有类型)。第一个选项使模板无效,错误为“Private.RevisionVersion”已经定义,等等。第二个选项仍然没有设置变量(可能是因为变量的
true
true'
是相同的)。