TFS。将变量从触发的构建传递到发布中的下一个任务

Posted

技术标签:

【中文标题】TFS。将变量从触发的构建传递到发布中的下一个任务【英文标题】:TFS. Pass variable from triggered build to next task in a release 【发布时间】:2018-06-06 11:01:45 【问题描述】:

我想在发布任务之间传递变量。 (从触发构建到脚本)

文件:

Script1:(保存环境变量)

Write-Output ("##vso[task.setvariable variable=MyVar;]$MyVarValue")

Script2:(打印环境变量值)

Write-host $env:MyVar

Script3:(同Script2)

Write-host $env:MyVar

第一种方法:构建

我的构建:

脚本1 脚本2

这工作正常,第二个脚本写入第一个创建的 $env:MyVar 的值。

第二种方法:释放 - 我的发布:

脚本1 脚本2

也可以正常工作。

当我的版本更改为:

我的发布: Triggered_build (MyBuild) 脚本3

在最后一种情况下,Script3 没有打印 $env:MyVar,所以我猜该版本使用的环境与用于触发构建的环境不同?

有没有办法做这样的事情?

【问题讨论】:

您试图从构建传递到发布的信息是什么?可能有更好的方法来实现您想要的结果。 是执行构建时计算的变量,路径 @Ale Xis,感谢您在这里分享您的解决方案,请将您的解决方案标记为答案,以便对其他社区成员有所帮助。 【参考方案1】:

没有办法直接用 TFS 做到这一点。

我已阅读有关变量组的信息,但无法使用脚本在执行时动态设置变量。

找到的唯一解决方案是使用插件 Variable (de|re)Hydration Tasks

解决方案来自:Is possible to pass a variable from a Build to a Release in TFS 2017?

【讨论】:

以上是关于TFS。将变量从触发的构建传递到发布中的下一个任务的主要内容,如果未能解决你的问题,请参考以下文章

构建变量在 TFS 中的发布中不起作用

用于更新文件和签入 TFS 的 Azure DevOps 管道任务

##[错误]错误:超出 GC 开销限制 - TFS 构建中的 SonarQube

我们如何在门控签入期间获取搁置集名称并将其分配给 tfs 构建任务中的变量

将构建定义从 TFS 迁移到 VSTS

VSTS:将构建/发布变量传递到 Powershell 脚本任务