Visual Studio Team Foundation Server 2015发布配置变量未设置

时间:2017-10-05 21:33:09

标签: powershell tfs release-management

在我的powershell步骤中考虑以下内容:

-source "c:\builds\$(Build.BuildNumber).zip"

结果是“c:\ builds \ 20171005.1.zip”

如果我尝试在我发布的版本变量的配置选项卡中设置以下内容,就像这样 Name = MyBuildNumber Value = $(Build.BuildNumber)

如果我改变我的poweshell看起来像这样

-source "c:\builds\$(MyBuildNumber).zip"

结果是“c:\ builds \ $(Build.BuildNumber).zip”

我在这做错了什么?我尝试了几种不同风格的存储变量都具有相同的效果。真的可以使用一些建议。

---------作为ANDY-MSFT ---- 我可以确认我使用的是版本14.102.25423.0。我安装了可变扩展包..没有区别。日志显示文字输出。我很确定我使用的是完全相同的设置。请检查我的定义变量和powershell语法的屏幕截图。 TFS 2015 setup

1 个答案:

答案 0 :(得分:1)

您使用的TFS 2015的确切版本是什么?是什么版本?

我在TFS 2015 Update4(Version 14.114.26403.0Agent.Version:1.95.4)上测试过,一切都按预期工作。

因此,请检查What version of Team Foundation Server do you have,如果您使用的是早期版本,则可以尝试升级到Update4或更高版本,然后重试。

此外,如果您仍想保留当前版本,可以使用VSTS Variable Tasks扩展:Variable Toolbox来扩展构建/发布变量。 (以及源代码here供您参考。)

  

在“变量”屏幕中定义变量并使用其他变量作为值时,它们不会被扩展(正如您所预期的那样)。而是将文字文​​本传递给工作流中的任务。如果没有这个小任务,以下配置将无法运行:

Variable              Value
Build.DropLocation    \\share\drops\$(Build.DefinitionName)\$(Build.BuildNumber)
     

通过将Expand变量任务添加到工作流程的顶部,它将负责扩展,因此它下面的任何任务都将获得您之后的价值。

PS:新代理(版本2.x)现在自动扩展变量。

这个类似的帖子供您参考: TFS 2015 Can build variables access other build variables?

<强>更新

根据您的TFS版本,它应该是TFS 2015 update3(您可以升级到Update4或更高版本,如果这是一个选项,也可以相应地升级构建代理)。要检查代理版本:Go Manager Server(齿轮图标)&gt;&gt; AgentPool&gt;&gt;选择一个游泳池&gt;&gt;选择代理商&gt;&gt;切换到功能,您将在该页面中看到代理版本。

enter image description here