我安装了一台新电脑并安装了VS2015。编译我当前正在处理的项目会产生一些无效代码(ILSpy 创建无法编译的源代码)。使用 ToolsVersion 12 在 VS2013 中运行良好。
日志文件告诉我 ToolsVersion 12 丢失,所以我安装了它。然而,无论我做什么或设置,它总是使用 ToolsVersion 14 进行编译。我可以手动调用MSBuild.exe
随 VS2013 一起提供(使用 ToolsVersion 12)并且代码正确。做同样的事情MSBuild.exe
随 VS2015 一起提供(使用 ToolsVersion 14)会导致代码不正确。所以我只需要 VS2015 即可使用 ToolSet 12。
MSDN 说:
“从 Visual Studio 2013 开始,MSBuild 工具集版本与 Visual Studio 版本号相同。MSBuild 在 Visual Studio 和命令行中默认使用此工具集,无论项目文件中指定的工具集版本如何。可以使用 /ToolsVersion 标志覆盖此行为。有关详细信息,请参阅覆盖 ToolsVersion 设置。”
使用 MSBuild 手动设置这样的效果很好,但是如何在 VS 2015 中设置它?所有环境变量都不起作用,它始终使用工具集 14 !
我将这个答案留在这里,以防它对其他人有帮助,但是它对原始海报没有帮助,因为根据@user1029883,当使用 12.0 构建工具安装 VS2015 时它不起作用(请参阅下面的 @alexandrul 的评论)而不是多个版本的 Visual Studio:抱歉。
不幸的是,似乎没有直截了当方法来做到这一点。然而,有一个巧妙的方法:
- 设置环境变量
MSBUILDLEGACYDEFAULTTOOLSVERSION
- 确保
ToolsVersion
顶级属性Project
所有项目文件中的元素设置为所需的ToolsVersion
.
请参阅覆盖工具版本设置MSDN 页面
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)