TFS版本管理工件变量不可用

时间:2016-09-09 05:51:20

标签: powershell tfs release-management

我们希望使用TFS 2015.3版本管理来打包/部署我们的软件。 对于我们的一个发布任务,我们需要访问其中一个Powershell脚本中的Release Artifact Variables

但是每当我们尝试访问其中一个变量RELEASE_ARTIFACTS_ [source-alias] _BUILDNUMBER时,我们会收到以下错误消息:

[error]术语“ Release_Artifacts_ [source-alias] _BUILDNUMBER ”无法识别为cmdlet,函数,脚本文件或可运行程序的名称。检查名称的拼写,或者如果包含路径,请验证路径是否正确,然后重试。

我已经尝试使用带有以下语句的内联powershell脚本打印出所有可用的环境变量:Get-ChildItem Env:。 但无论如何,那些变量都不存在......

使用Release Artifact变量时是否存在任何已知问题?

2 个答案:

答案 0 :(得分:4)

似乎Release Artifacts变量不适用于TFS on-prem;我用VSTS和TFS2015.3测试了相同的脚本。

在VSTS版本中,您可以在初始化版本中看到发布变量,而在本地版本中,这些变量缺失:

enter image description here

enter image description here

答案 1 :(得分:3)

您正在使用发布管理工件的表单的预定义变量

RELEASE_ARTIFACTS_[source-alias]_[variable-name]

您需要将[source-alias]替换为版本定义中包含的工件源的别名。您可以在版本定义的工件选项卡中找到别名。

enter image description here

然后您可以使用它如下:

  • 内联脚本参数中使用时,工件中的句点 名称必须替换为下划线。 env:RELEASE_ARTIFACTS_[ScrumProject]_[BUILDNUMBER]
  • 工件变量也可以作为 Arguments 传递给任务。在 在这种情况下,用句点替换下划线: Release.Artifacts.[source-alias].[variable-name]

更多详细信息,请参阅MSDN上的本教程页面:Artifacts in Microsoft Release Management

经过一些测试,得到与 ds19 相同的结果。似乎发布工件不支持TFS2015 update3目前仅适用于VSTS。

更新

您只需要在Publish Build ArtifactsCopy and Publish Build Artifacts步骤中指定build.artifactstagingdirectory,TFS就会为您做好准备。要压缩工件,您还可以使用powershell脚本来实现此目的,更多详细信息可以参考此博客Manage Artifacts with TFS Build vNext