Visual Studio Team Foundation Server 2015 版本配置变量未设置

Visual Studio Team Foundation Server 2015 release configuration variables not setting

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

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

结果是 "c:\builds171005.1.zip"

如果我尝试像这样在我的发布变量的配置选项卡中设置以下内容 名称=MyBuildNumber 值=$(Build.BuildNumber)

如果我将 poweshell 改成这样

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

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

我在这里做错了什么?我尝试了几种不同类型的存储变量,但效果都一样。真的可以使用一些建议。

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

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 Toolbox to expand the build/release variables. (And the source code here 供您参考。)

When you define a variable in the Variables screen and use other variables as value, they won't be expanded (as you may have expected). Instead the literal text is passed to the tasks in the workflow. Without this little task the following configuration won't work:

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

By adding the Expand variable(s) task to the top of your workflow, it will take care of the expansion, so any task below it will receive the value you're after.

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

还有这个类似的帖子供您参考:


更新:

根据您的 TFS 版本,它应该是 TFS 2015 update3(如果可以的话,您可以升级到 Update4 或更高版本,同时相应地升级构建代理)。要检查代理版本:Go Manager Server(齿轮图标)>> AgentPool >> Select a pool >> select an agent >> 切换到 Capabilities,您将在该页面中看到代理版本。