使用Visual Studio 2015编译ToolsVersion 12

时间:2015-11-18 22:46:35

标签: msbuild visual-studio-2015

我安装了一台新电脑并安装了VS2015。编译我目前正在处理的项目导致一些无效代码(ILSpy创建无法编译的源代码)。它使用ToolsVersion 12在VS2013中运行良好。

日志文件告诉我缺少ToolsVersion 12,所以我安装了它。无论我做什么或设置什么,它总是使用ToolsVersion 14进行编译。我可以手动调用VS2013附带的MSBuild.exe(使用ToolsVersion 12)并且代码是正确的。对VS2015附带的MSBuild.exe执行相同操作(使用ToolsVersion 14)会产生INCORRECT代码。所以我需要的是VS2015使用ToolSet 12。

MSDN说:

"从Visual Studio 2013开始,MSBuild Toolset版本与Visual Studio版本号相同。无论项目文件中指定的ToolSet版本如何,MSBuild都默认使用Visual Studio和命令行中的此工具集。可以使用/ ToolsVersion标志覆盖此行为。有关更多信息,请参阅覆盖ToolsVersion设置。"

手动设置这样使用MSBuild工作正常,但如何在VS 2015中设置?没有环境变量可行,它总是使用工具集14!

1 个答案:

答案 0 :(得分:3)

我在这里留下这个答案以防万一它可以帮助其他人,但它没有帮助原始海报,因为根据@ user1029883它在安装VS2015时不起作用使用12.0 Build Tools(参见下面的@ alexandrul评论)而不是Visual Studio的多个版本:抱歉。

不幸的是,似乎并不是一种简单的方式。然而,有一种繁琐的方式:

  • 设置环境变量MSBUILDLEGACYDEFAULTTOOLSVERSION
  • 确保所有项目文件中顶级ToolsVersion元素中的Project属性设置为所需的ToolsVersion

请参阅Overriding ToolsVersion Settings page on MSDN