【问题标题】:TeamCity Using Wrong MSBuild Executable?TeamCity 使用错误的 MSBuild 可执行文件?
【发布时间】:2010-02-21 18:20:32
【问题描述】:

我正在构建一个 MSBuild 文件并将其与 TeamCity(5.0.2(内部版本 10784))中的 MSBuild Build Runner 一起使用,但我认为它运行的 MSBuild 版本不正确,因为我不断收到以下错误:

错误 MSB5014:无法识别文件格式版本。 MSBuild 只能读取版本 7.0 和 9.0(含)之间的解决方案文件。

我是 TeamCity 的新手,所以我不确定从哪里开始了解如何配置它。从下面的截图可以看出,我在 build runner 配置界面中选择了 4.0 版本。

【问题讨论】:

  • 您意识到.NET 4.0 仍处于测试阶段,对吧?你确定不想要 3.5 或 2.0?
  • 是的...我正在构建一系列以 VS2010 为中心的棕色包演示。很大一部分观众不熟悉持续集成,所以我也在构建一个 CI 演示来向小组介绍它。由于他们已经熟悉我的项目(包括单元测试),我更喜欢使用我在其他演示中使用过的相同演示项目。

标签: teamcity teamcity-5.0


【解决方案1】:

根据错误,Team City/MSBuild 配置似乎不支持 VS2010。 VS2010 的解决方案是 10.0 版本,错误表明它只支持 7.0 到 9.0 版本。

Here 是一个讨论使用 TeamCity 构建 VS2010 项目的论坛主题。

【讨论】:

  • 做到了!非常感谢。
【解决方案2】:

the forum thread中提取答案:

这个问题在 TeamCity 5.1 中得到了修复,但有一个 hack 可以让它在 5.0 中运行

基本上,您需要根据构建配置的构建运行器部分中指定的 .NET 框架版本来覆盖设置 MSBuild.exe 路径的机制。

为此,创建环境变量“MSBuild”并将其设置为 %system.DotNetFramework4.0_x86_Path%(这是构建运行程序在检测到已安装 .NET 4.0 时自动生成的变量)

该变量可以在代理上创建,在 buildAgent.properties 文件中,在这种情况下,它应该命名为“env.MSBuild”,并且由于它是全局定义的,它将影响在此构建代理上构建的所有项目.

或者,它可以在构建配置本身中创建(然后名称将简单地称为“MSBuild”)——在这种情况下,它只会应用于此构建配置。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-29
    • 1970-01-01
    • 2011-05-15
    • 2011-08-18
    • 2013-09-30
    • 2017-01-05
    • 1970-01-01
    相关资源
    最近更新 更多