创建VSTS版本时,预定义变量为空

时间:2017-02-22 10:43:21

标签: azure-devops azure-service-fabric azure-pipelines azure-pipelines-release-pipeline

我在VSTS中设置了一个带有CD的Service Fabric项目。 CD工艺已在Visual Studio中的CD向导中设置。到目前为止一切都那么好但是在发布时我没有从我用来命名发布的pre-defined variable Build.DefinitionName获得任何价值。

这是我的发布名称的配置方式:$(Build.DefinitionName)-$(date:yyyyMM).$(rev:r)

如果我们查看发布日志,则变量没有值:

[BUILD_DEFINITIONNAME] --> []
[RELEASE_ARTIFACTS_{Primary artifact alias}*_DEFINITIONNAME] --> []

*此值已正确填充。

根据主要工件变量的文档,上面的两个变量应该是相同的。

因此,我的版本名为 $(Build.DefinitionName)-201702.7

如果我改用Build.BuildNumber。我得到了正确的价值。

如何填充变量?

更新

手动创建构建和发布定义时,$(Build.DefinitionName)会在发布端正确填充。但是当您使用Visual Studio中的CD wizard时,似乎会出现问题。我可能会遗漏一些东西,但构建定义的设置是相同的。或者CD向导会有一些时髦的东西。

2 个答案:

答案 0 :(得分:0)

在构建号从Build传递到release时,没有开箱即用的方法在构建和发布之间传递更多变量。

但是我写了一系列构建任务来执行此操作:https://marketplace.visualstudio.com/items?itemName=nkdagility.variablehydration

它由两个任务组成,第一个将指定的变量保存到json文件中,你应该将它放在构建输出中。

第二个恢复你想要的变量。如果您的发行版有多个源代码构建,则特别有用。

答案 1 :(得分:0)

解决方案是在Web访问时手动创建发布定义并设置Continuous Deployment。