2

我在 VSTS 中有一个使用 CD 设置的 Service Fabric 项目。CD 进程已从 Visual Studio 中的 CD 向导设置。到目前为止一切都很好,但是当发布发布时,我没有从我用来命名发布的预定义变量中获得任何值。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 向导时,问题似乎出现了。我可能遗漏了一些东西,但构建定义的设置是相同的。或者 CD 向导发生了一些奇怪的事情。

4

2 回答 2

0

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

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

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

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

于 2017-02-22T19:22:26.370 回答
0

解决方案是在 Web 访问时手动创建发布定义并设置持续部署。

于 2017-02-23T10:05:18.163 回答