VS2015:如何使用MSBuild 12.0构建?

时间:2017-02-08 01:43:16

标签: c# .net visual-studio msbuild

我安装了VS2015(MSBuild 14.0)和VS2013(MSBuild 12.0)。这样做的原因是我有一个项目,我可以 使用MSBuild 12.0 构建。我已经过hereherehere了。我更改了项目文件以指定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是一件简单的事情。

此外,我与一个团队合作,所以理想情况下,我正在寻找最少侵入性的解决方案。我不想更改注册表值等。

非常感谢任何帮助。

1 个答案:

答案 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。