【问题标题】:Trouble passing TFS build number to MSBuild将 TFS 内部版本号传递给 MSBuild 时遇到问题
【发布时间】:2015-12-26 16:07:07
【问题描述】:

我正在尝试让 TFS 将内部版本号传递给 MSBuild,但看起来环境变量没有被解析并且我收到以下错误:

'$(TF_BUILD_BUILDNUMBER)' 不是有效的版本字符串。

我使用的论点是:

/p:OctoPackPackageVersion=$(TF_BUILD_BUILDNUMBER)

我也尝试过使用构建 ID,但也没有得到解析。如果我在参数中输入相同的版本号,则构建成功完成。

我在 Visual Studio Online 上使用 Visual Studio 2013 和 TFS。如果有任何设置我可以尝试更改以解决此问题,请告诉我。

非常感谢

【问题讨论】:

  • 您使用的是哪个构建系统,XAML 还是基于任务的?

标签: visual-studio-2013 tfsbuild azure-devops


【解决方案1】:

这对于 XAML 构建系统是正确的。如果您改用较新的构建系统,则为 $(Build.BuildNumber)

【讨论】:

  • 谢谢,但这仍然给了我同样的错误。我正在使用 DefaultTemplate.11.1.xaml
  • 我刚刚尝试了 '$(BUILD_BUILDNUMBER)' 也不起作用。
  • $(Build.BuildNumber) 在新构建系统的“Visual Studio Build”构建步骤的“MSBuild Argument”字段中为我工作。
【解决方案2】:

几个小时后,我通过将构建过程模板更改为 TfvcTemplate.12.xaml 解决了这个问题。

【讨论】:

    【解决方案3】:

    我知道旧线程,但是对于任何偶然发现这个正在运行的 TFS“15”RC2 或更高版本的人,使用 vNext 中的任务,我发现有效的属性是 $(BUILD_BUILDNUMBER) 并且可以在 .proj 文件中使用.尝试将内部版本号传递到 ProductVersion 时,InstallShield 导致我出现问题...

    添加这一行解决了我的问题..

    <InstallShieldProductVersion>$(BUILD_BUILDNUMBER)</InstallShieldProductVersion>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-12-04
      • 2010-11-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多