代码之家  ›  专栏  ›  技术社区  ›  senfo

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

  •  7
  • senfo  · 技术社区  · 15 年前

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

    < Buff行情>

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

    < /块引用>

    我是TeamCity的新手,所以我不知道从哪里开始了解如何配置这个。从下面的屏幕截图中可以看到,我在BuildRunner配置屏幕中选择了4.0版。

    teamcity中的ild runner(5.0.2(build 10784)),但我认为它没有运行正确版本的msbuild,因为我一直收到以下错误:

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

    我是TeamCity的新手,所以我不知道从哪里开始了解如何配置这个。从下面的屏幕截图中可以看到,我在BuildRunner配置屏幕中选择了版本4.0。

    2 回复  |  直到 15 年前
        1
  •  5
  •   smaclell    15 年前

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

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

        2
  •  4
  •   Andriy Volkov    15 年前

    从中提取答案 the forum thread :

    在TeamCity 5.1中解决了这个问题,但是有一个黑客程序可以让它在5.0中工作。

    基本上,您需要重写根据生成配置的内部版本运行程序部分指定的.NET框架版本将路径设置为msbuild.exe的机制。

    为此,请创建环境变量“msbuild”,并将其设置为%system.dotnetframework4.0_x86_path%(当检测到安装了.NET 4.0时,生成运行程序会自动生成该变量)

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

    或者,可以在生成配置本身内部创建它(那么名称将简单地为“msbuild”)——在这种情况下,它将只应用于此生成配置。

    推荐文章