我安装了一台新电脑并安装了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!
答案 0 :(得分:3)
我在这里留下这个答案以防万一它可以帮助其他人,但它没有帮助原始海报,因为根据@ user1029883它在安装VS2015时不起作用使用12.0 Build Tools(参见下面的@ alexandrul评论)而不是Visual Studio的多个版本:抱歉。
不幸的是,似乎并不是一种简单的方式。然而,有一种繁琐的方式:
MSBUILDLEGACYDEFAULTTOOLSVERSION
ToolsVersion
元素中的Project
属性设置为所需的ToolsVersion
。