创建 VSTS 版本时预定义变量为空
Pre-defined variable is empty in when creating VSTS release
我在 VSTS 中使用 CD 设置了一个 Service Fabric 项目。已从 visual studio 中的 CD 向导设置 CD 进程。到目前为止一切顺利,但是当发布发布时,我没有从我用于命名发布的名为 Build.DefinitionName
的 pre-defined variable 中获得任何值。
我的发布名称是这样配置的:$(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 向导发生了一些奇怪的事情。
关于内部版本号是从 Build 传递到 release,没有开箱即用的方法在 build 和 release 之间传递更多变量。
但是我写了一系列构建任务来做到这一点:https://marketplace.visualstudio.com/items?itemName=nkdagility.variablehydration
它包含两个任务,第一个将指定的变量保存到一个 json 文件,您应该将其放入构建输出中。
第二个恢复你想要的变量。如果您的发布有多个源构建,则特别有用。
解决方案是在 Web 访问上手动创建发布定义并设置持续部署。
我在 VSTS 中使用 CD 设置了一个 Service Fabric 项目。已从 visual studio 中的 CD 向导设置 CD 进程。到目前为止一切顺利,但是当发布发布时,我没有从我用于命名发布的名为 Build.DefinitionName
的 pre-defined variable 中获得任何值。
我的发布名称是这样配置的:$(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 向导发生了一些奇怪的事情。
关于内部版本号是从 Build 传递到 release,没有开箱即用的方法在 build 和 release 之间传递更多变量。
但是我写了一系列构建任务来做到这一点:https://marketplace.visualstudio.com/items?itemName=nkdagility.variablehydration
它包含两个任务,第一个将指定的变量保存到一个 json 文件,您应该将其放入构建输出中。
第二个恢复你想要的变量。如果您的发布有多个源构建,则特别有用。
解决方案是在 Web 访问上手动创建发布定义并设置持续部署。