在我的yaml文件中,我通过将值设置为($MinorVersion)
和/或($MajorVersion)
定义了一些变量,这些变量应包含月份'$(Month)'
或年份'$(Year:yy)'
的值。 。当我在任务脚本或任务Powershell中打印它们时,它仅显示'$(Month)'
和/或'$(Year:yy)'
。变量$(MajorVersion)
的预期输出当然是当前月份和年份09
和20
。
有人可以告诉我如何访问任务脚本/ powershell中的变量$MinorVersion
以获得其实际值吗?那就是文件内容:
trigger:
- master
pool:
vmImage: 'windows-latest'
#import variable group resize-group, local variables are name/value pairs
variables:
- group: resize-group
- name: buildConfiguration
value: 'Release'
- name: appxPackageDir
value: '$(build.artifactStagingDirectory)\AppxPackages\\'
- name: MajorVersion
value: '$(Year:yy)'
- name: MinorVersion
value: '$(Month)'
- name: PatchVersion
value: 45
- name: RevVersion
value: '$(BuildID)'
- name: Packageappxmanifest
value: Package.appxmanifest
- name: PackageVersion
value: '$(MajorVersion).$(MinorVersion).$(PatchVersion).$(RevVersion)'
name: $(BuildDefinitionName)_$(MajorVersion).$(MinorVersion).$(PatchVersion)$(RevVersion)
steps:
- checkout: self
submodules: true
- script: |
echo %MinorVersion%
echo %variables.MinorVersion%
echo $($[variables.MinorVersion])
echo ${{ variables.MinorVersion }} # outputs initialValue
echo $(Month)
echo $(MajorVersion)
echo $(MinorVersion)
echo $(RevVersion)
echo $(PackageVersion)
echo $(Year:yyyy).$(Month).$(DayOfMonth)$(Rev:.r)
- powershell: |
Write-Host $env:MinorVersion
Write-Host $env:variables.MinorVersion%
Write-Host "$env:MY_MAPPED_PACKAGEVERSION"
Write-Host "$env:MY_MAPPED_REVVERSION"
答案 0 :(得分:1)
有人可以告诉我如何访问变量$ MinorVersion 任务脚本/ powershell来获取它的实际值吗?
Az devops没有这样的系统变量或预定义变量,例如$(Year:yy)
和$(Month)
。可用的预定义变量是here定义的,我们不能展开$(Year:yy)
和$(Month)
,因为它们不是预定义的。对于value: '$(BuildID)'
,BuildID
的正确格式是$(Build.BuildID)
,而不是$(BuildID)
。
$(Date:yyyyMMdd) and $(Rev:.r)
仅对内部版本号(对于Yaml管道为related document here)有效。因此,普通变量无法扩展它们的值,只有name
元素才能识别它们。您应该使用:
name
代替错误的格式:
name: $(BuildDefinitionName)_$(Date:yyyyMMdd)$(Rev:.r)
获取/定义日期时间值的变量的解决方法:
尽管尚未预定义日期时间的变量,但我们可以在name: $(BuildDefinitionName)_$(MajorVersion).$(MinorVersion).xxx
的开头放置一个PowerShell步骤来手动定义这些变量。您可以检查link1和link2以获得更多详细信息。
因此,如果要定义与数据相关的变量,可以检查set variables in scripts:
steps
第二个PS任务的输出: