无法以发布名称格式引用工件的内部版本号

Unable to reference artifacts' build numbers in Release name format

我的 Azure DevOps 发布管道中有三个项目,它们具有以下源别名:_Client_Database_WebApp

_Client是初级神器。我想在发布名称中包含每个工件的内部版本号。

我在 "Options" 选项卡下的 "Release name format" 中使用了以下表达式。

Release-$(rev:r) for Core Build-$(Release.Artifacts._WebApp.BuildNumber), Db Build-$(Release.Artifacts._Databaes.BuildNumber), Client Build-$(Release.Artifacts_Client.BuildNumber)

我预计它将发布命名为“Release-74 for Core Build-29.0.0.69, Db Build-1.0.0.29, Client Build-2.1.0.34

而是将其命名为 "Release-74 for Core Build-$(Release.Artifacts._WebApp.BuildNumber), Db Build-$(Release.Artifacts._Database.BuildNumber), Client Build-$(Release.Artifacts._Client.BuildNumber)"

在初始化作业日志中,它确实显示了工件及其各自的内部版本号,如下所示:

[RELEASE_ARTIFACTS__DATABASE_BUILDNUMBER] --> [1.0.0.29]
[RELEASE_ARTIFACTS__CLIENT_BUILDNUMBER] --> [2.1.0.34]
[RELEASE_ARTIFACTS__WEBAPP_BUILDNUMBER] --> [29.0.0.69]
[RELEASE_RELEASENAME] --> [Release-74 for Core Build-29.0.0.69, Db Build-1.0.0.29, Client Build-2.1.0.34]

是因为在创建管道时无法解析工件内部版本号,还是有其他方法可以实现?

我的版本中有同样的行为,看起来 Artifacts 变量只有在版本开始后才获得它们的值,所以不可能将它们放在版本名称中。

作为解决方法,您可以添加一个简单的命令行任务,使用日志记录命令来更新版本名称:

echo ##vso[release.updatereleasename]Release-$(rev:r) for Core Build-$(Release.Artifacts._WebApp.BuildNumber), Db Build-$(Release.Artifacts._Databaes.BuildNumber), Client Build-$(Release.Artifacts._Client.BuildNumber)