【发布时间】:2017-02-01 18:59:54
【问题描述】:
TFS 发布管理有一个变量的概念。它们是在设计时在发布定义中设置的。有没有办法让任务更改变量以便其他任务看到更改?
Windows SET 命令只影响当前执行的 cmd.exe 实例的环境,不影响封闭进程的环境。
在工作文件夹中的临时文件中逐步传递信息是可能的,但很粗糙。
【问题讨论】:
标签: tfs tfs-2015 ms-release-management
TFS 发布管理有一个变量的概念。它们是在设计时在发布定义中设置的。有没有办法让任务更改变量以便其他任务看到更改?
Windows SET 命令只影响当前执行的 cmd.exe 实例的环境,不影响封闭进程的环境。
在工作文件夹中的临时文件中逐步传递信息是可能的,但很粗糙。
【问题讨论】:
标签: tfs tfs-2015 ms-release-management
我相信是的。我没有对此进行测试,但请看一下这个 VSO 构建任务:
https://marketplace.visualstudio.com/items?itemName=jessehouwing.jessehouwing-vsts-variable-tasks
它有一个可以设置变量的任务。这是它调用的特定powershell脚本:
第 22 行:
Write-Host "##vso[task.setvariable variable=$($VariableName);]$Value"
更新:
此后,我在这里找到了 Microsoft 文档:
https://github.com/Microsoft/vsts-tasks/blob/master/docs/authoring/commands.md
具体来说:
vso[task.setvariable]值
variable=变量名(必填) issecret=true(可选) 在 taskcontext 的变量服务中设置一个变量。第一个任务可以设置一个变量,后面的任务可以使用这个变量。该变量作为环境变量公开给以下任务。当 issecret 设置为 true 时,变量的值将被保存为秘密并从日志中屏蔽掉。秘密变量不作为环境变量传递给任务,必须作为输入传递。 示例:
##vso[task.setvariable variable=testvar;]testvalue
##vso[task.setvariable variable=testvar;issecret=true;]testvalue
【讨论】: