【问题标题】:azure pipeline variable created in powershell script not displaying value在powershell脚本中创建的天蓝色管道变量不显示值
【发布时间】:2021-04-24 05:07:08
【问题描述】:

在 Azure 管道中,我想在 Powershell 脚本中设置一个变量,然后在以后的构建步骤中使用该变量。该变量不会打印出值。

在我的 Powrshell 脚本中,我为测试目的硬编码了一个值:

$packageFolder = 'dotnet/TestPackage/'
##vso[task.setvariable variable=changedPackage;isOutput=true]$packageFolder

这是我的 YAML 文件:

steps:
  - task: PowerShell@2
    displayName: 'Detect Subfolder Changes'
    name: setvarStep
    inputs:
      targetType: 'filePath'
      filePath: $(System.DefaultWorkingDirectory)\detectchanges.ps1
      failOnStderr: true
 - script: echo "$(setvarStep.changedPackage)"
 - task: DotNetCoreCLI@2 
   displayName: 'dotnet build'
   condition: ne('$(setvarStep.changedPackage)', '')
   inputs: 
      projects: '$(setvarStep.changedPackage)' 

当管道到达脚本步骤时,它只会打印出以下内容:

Script contents:
echo "$(setvarStep.changedPackage)"

我认为变量实际上并没有设置。当管道进入 dotnet 构建步骤时,它会引发错误:##[error]Project file(s) matching the specified pattern were not found

打开调试后,我在 dotnet 构建步骤日志中注意到了这一点:##[debug]findPath: 'C:\agents\librarywin-1\_work\2\s\$(setvarStep.changedPackage)'

我认为我的问题是管道变量语法错误,即使我关注的是 Microsoft 网站上的 example。我想不通。

【问题讨论】:

    标签: powershell azure-devops azure-pipelines


    【解决方案1】:

    你应该有Write-Host

    $packageFolder = 'dotnet/TestPackage/'
    Write-Host ##vso[task.setvariable variable=changedPackage;isOutput=true]$packageFolder
    

    喜欢这里

    【讨论】:

      【解决方案2】:

      你需要双引号记录命令:

      detectchanges.ps1:

      $packageFolder = 'dotnet/TestPackage/'
      "##vso[task.setvariable variable=changedPackage;isOutput=true]$packageFolder"
      

      YAML:

      steps:
      - task: PowerShell@2
        displayName: 'Detect Subfolder Changes'
        name: setvarStep
        inputs:
          targetType: 'filePath'
          filePath: $(System.DefaultWorkingDirectory)\detectchanges.ps1
          failOnStderr: true
      - script: echo "$(setvarStep.changedPackage)"
      

      【讨论】:

      • 谢谢。添加括号就可以了。我知道这一定是小事。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-07-13
      • 2021-05-25
      • 2020-01-27
      • 2020-05-19
      • 2020-09-01
      相关资源
      最近更新 更多