使用Visual Studio 2015编译ToolsVersion 12

use*_*883 10 msbuild visual-studio-2015

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

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

MSDN说:

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

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

Guy*_*ing 3

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


不幸的是,似乎没有一种简单的方法可以做到这一点。然而,有一个巧妙的方法:

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

请参阅MSDN 上的覆盖工具版本设置页面