TeamCity使用错误的MSBuild可执行文件?

时间:2010-02-21 18:20:32

标签: teamcity teamcity-5.0

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

  

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

我是TeamCity的新手,所以我不知道从哪里开始了解如何配置它。从下面的屏幕截图中可以看出,我在构建运行器配置屏幕中选择了4.0版。

Build Configuration

2 个答案:

答案 0 :(得分:5)

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

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

答案 1 :(得分:4)

the forum thread提取答案:

这个问题已在TeamCity 5.1中修复,但有一个黑客可以让它在5.0中运行

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

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

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

或者,它可以在构建配置本身内创建(然后名称将只是“MSBuild”) - 在这种情况下,它只适用于此构建配置。