【问题标题】:Get Artifact Alias BuildNumber from TFS 2015从 TFS 2015 获取工件别名 BuildNumber
【发布时间】:2018-03-17 12:39:25
【问题描述】:

已在此处引用:How to access an artifact's BUILDNUMBER is Visual Studio Team Services Release management 和这里: https://docs.microsoft.com/en-us/vsts/build-release/concepts/definitions/release/variables?tabs=batch

我正在使用 vanilla Visual Studio Team Foundation Server 2015(版本 14.102.25423.0) 在我的构建中,我使用工件的构建号压缩了一个工件。例如。 20171004.16.zip 我在发布定义中定义了两个工件源。

"QA - myproject - build"
"Prod - myproject - build"

我的步骤之一是将 buildnumber.zip 文件复制到我的远程服务器。 在我的配置设置中我定义了:

ProdBuildNumber = $(Release.Artifacts.Prod - myproject - build.BuildNumber)

问题在于,ProdBuildNumber 只是按字面意思设置。 例如:来自调试脚本:

...
2017-10-05T19:09:48.0651172Z [SYSTEM] --> [release]
2017-10-05T19:09:48.0651172Z [PRODBUILDNUMBER] --> [$(Release.Artifacts.Prod - myproject - build.BuildNumber)]
2017-10-05T19:09:48.0651172Z [RELEASE_RELEASEID] --> [114]
...

谁能看到我做错了什么?愿意尝试任何想法。

【问题讨论】:

  • 您实际上想提取什么信息? Release.Artifacts.Prod 不会解析为任何内容(例如,您需要指定类似 Release.Artifacts.Prod.DefinitionName 的内容),Build.BuildNumber 将自动解析为主要工件的内部版本号。
  • Msft 说要访问特定工件的内部版本号,就像 Release.Artifacts.{Artifact alias}.BuildNumber 一样使用。我的版本中有两个工件来源。我需要能够定位适当的工件内部版本号。不是初级。如果我的别名是“some - project - name 那么路径不应该是 Release.Artifacts.some - project - path.BuildNumber ??? 语法中的某些内容不正确。
  • 我希望是工件别名中的空格导致它出错。你没有尝试访问Release.Artifacts.ProdBuild.BuildNumber
  • 一些 - 项目 - 路径应该是一些 - 项目 - 名称。手机出错。
  • 我不知道空格的事...另一个帖子说要留下空格。

标签: deployment tfs azure-pipelines


【解决方案1】:

试试

ProdBuildNumber = $(Release.Artifacts.Prod) - myproject - $(build.BuildNumber)

【讨论】:

【解决方案2】:

[Release.Artifacts.Alias.BuildNumber] 变量在 TFS2015 中不可用。如果您想使用它,请将您的服务器升级到 TFS2017,您还可以从 Release/Logs/Deploy 中检查所有支持的变量。以下是 TFS2015 中支持的变量:

如果您暂时无法升级服务器,您可以在发布定义中添加一个 powershell 脚本任务,以通过Rest API 获取详细的工件信息。

【讨论】:

    猜你喜欢
    • 2017-05-09
    • 2018-11-04
    • 2016-08-16
    • 2016-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-24
    相关资源
    最近更新 更多