我安装了VS2015(MSBuild 14.0)和VS2013(MSBuild 12.0)。这样做的原因是我有一个项目,我可以 使用MSBuild 12.0 构建。我已经过here,here和here了。我更改了项目文件以指定MSBuild 12.0,但是我收到以下错误:
项目文件包含ToolsVersion =" 12.0"。此工具集可能未知 或遗失,在这种情况下,您可以通过以下方式解决此问题 安装适当版本的MSBuild,或者构建可能有 出于政策原因被迫使用特定的ToolsVersion。治疗 该项目好像它有ToolsVersion =" 14.0"。欲获得更多信息, 请参阅http://go.microsoft.com/fwlink/?LinkId=293424。
我知道工具集不会丢失,它安装在此处:C:\Program Files (x86)\MSBuild\12.0
。
我希望在我的.csproj文件中更改ToolsVersion=12.0
是一件简单的事情。
此外,我与一个团队合作,所以理想情况下,我正在寻找最少侵入性的解决方案。我不想更改注册表值等。
非常感谢任何帮助。
答案 0 :(得分:2)
我们无法直接在visual studio 2015中使用Tools Version 12。 MSDN说:
“从Visual Studio 2013开始,MSBuild Toolset版本就是 与Visual Studio版本号相同。 MSBuild默认为此 Visual Studio和命令行中的工具集,无论如何 项目文件中指定的ToolSet版本。这种行为可以 使用/ ToolsVersion标志覆盖。有关更多信息,请参阅 Overriding ToolsVersion Settings“。
我们可以使用命令提示符覆盖项目和解决方案的ToolsVersion设置:
msbuild.exe someproj.proj /tv:12.0
此外,Guy Bolton King提供了Visual Studio扩展来实现它。这是GitHub上的extension repository项目。
Set-toolsversion-extension,用于在构建期间临时设置环境变量MSBUILDDEFAULTTOOLSVERSION;要使用的值是从与.sln文件相同的目录中的.toolsversion文件中读取的。 psake脚本读取相同的.toolsversion文件并将值传递给/ tv开关。
请构建扩展项目并将SetToolsVersion.vsix安装到visual studio。
请注意: 感谢@ mbadawi23提醒清理解决方案,关闭VS并在安装扩展后再次打开它,还需要添加.toolsversion。