Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.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脚本btw Powershell中的变量_Azure Devops - Fatal编程技术网

Azure devops 如何在开发操作管道中访问Azure脚本btw Powershell中的变量

Azure devops 如何在开发操作管道中访问Azure脚本btw Powershell中的变量,azure-devops,Azure Devops,在我的yaml文件中,我定义了一些变量,通过将值设置为'$(月)和/或'$(年:yy),这些变量应该包含月份($MinorVersion)或年份($MajorVersion)。当我在任务脚本或任务powershell中打印它们时,它只显示'$(月)和/或'$(年:yy)。变量$(主版本)的预期输出当然是当前月份和年份09和20 有人能告诉我如何访问任务脚本/powershell中的变量$MinorVersion,以获取它的实际值吗?这就是文件内容: trigger: - master pool

在我的yaml文件中,我定义了一些变量,通过将值设置为
'$(月)
和/或
'$(年:yy)
,这些变量应该包含月份
($MinorVersion)
或年份
($MajorVersion)
。当我在任务脚本或任务powershell中打印它们时,它只显示
'$(月)
和/或
'$(年:yy)
。变量
$(主版本)
的预期输出当然是当前月份和年份
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"
输出仅显示变量的未计算内容:

有人能告诉我如何访问中的变量$MinorVersion吗 任务脚本/powershell以获取其实际值

Az devops没有此类系统变量或预定义变量,如
$(年:yy)
$(月)
。可用的预定义变量已定义,我们无法展开
$(年:yy)
$(月)
,因为它们不是预定义的。至于
value:'$(BuildID)
BuildID
的正确格式是
$(Build.BuildID)
,而不是
$(BuildID)

$(日期:yyyyMMdd)和$(版本:.r)
仅对内部版本号有效(
名称
用于yaml管道)。所以普通变量不能扩展它们的值,只有
name
元素才能识别它们。你应使用:

name:$(BuildDefinitionName)\u$(日期:yyyyMMdd)$(版本:.r)

而不是错误的格式:

name:$(BuildDefinitionName)\u$(主版本)。$(MinorVersion).xxx

获取/定义具有日期时间值的变量的变通方法:

虽然日期时间的变量没有预定义,但我们可以在
步骤的开头放置一个PowerShell步骤来手动定义这些变量。您可以查看和以了解更多详细信息

因此,如果要定义与数据相关的变量,可以检查:

第二个PS任务的输出:

- task: PowerShell@2
  inputs:
    targetType: 'inline'
    script: |
      $year=$(Get-Date -Format 'yyyy')
      Write-Host "##vso[task.setvariable variable=MajorVersion]$year"
      $month=$(Get-Date -Format 'MM')
      Write-Host "##vso[task.setvariable variable=MinorVersion]$month"
      $day=$(Get-Date -Format 'dd')
      Write-Host "##vso[task.setvariable variable=DayOfMonth]$day"


- powershell: |
    Write-Host  $(MajorVersion)
    Write-Host  $(MinorVersion)
    Write-Host  $(DayOfMonth)