DevOps流水线中如何引用其他任务定义的输出变量?需做何修改?
在Azure DevOps流水线中跨任务传递输出变量的修改方案
要让第二个任务正常调用第一个任务定义的变量,需要做两处关键修改:
1. 给输出变量的任务添加唯一引用名称
在第一个SetVal任务中新增name属性,后续任务必须通过这个名称来访问它的输出变量:
- task: PowerShell@2 displayName: 'SetVal' name: SetValTask # 新增:给任务设置唯一引用标识 inputs: targetType: filePath filePath: '$(System.DefaultWorkingDirectory)/setval.ps1' pwsh: true
2. 修正第二个任务的变量引用语法
第二个任务里不能用$env:setvalue调用跨任务输出变量,必须使用Azure DevOps的任务输出变量语法:$(任务名称.变量名),修改后的代码如下:
- task: PowerShell@2 displayName: 'UseVal' inputs: targetType: filePath filePath: '$(System.DefaultWorkingDirectory)/UseVal.ps1' arguments: '-DEFAULT_WORKING_DIRECTORY $(System.DefaultWorkingDirectory) -setvalue $(SetValTask.setvalue)'
补充说明
你第一个任务中的PowerShell脚本写法是正确的,无需修改:
Write-Output "##vso[task.setvariable variable=setvalue;isOutput=true]$setvalue"
这里的isOutput=true已经将变量标记为任务级输出变量,配合前面的任务名称和正确的引用语法,就能在后续任务中正常读取。
内容的提问来源于stack exchange,提问作者user10434309
相关产品推荐
相关产品推荐

