VS 2012 - 由于缺少工具集,项目构建失败

49

我的Visual Studio C++ 2012中无法编译/构建任何内容,因为我遇到了一个错误,指出我要么具有不合适的ToolsVersion,要么ToolSet缺失。

这是控制台中的错误:

项目文件包含ToolsVersion="12.0"。此工具集可能未知或缺失, 在这种情况下,您可以通过安装适当版本的MSBuild或强制使用特定的ToolsVersion来解决此问题。 将项目视为具有ToolsVersion="4.0"。

1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.Cpp.Platform.targets(44,5): error MSB8020:无法找到v120(平台工具集='v120')的构建工具。 要使用v120构建工具进行构建,请单击“项目”菜单或右键单击解决方案,然后选择“更新VC++ 项目...”。安装v120以使用v120构建工具进行构建

我已经安装了Microsoft SDK。这也可能是相关的——我最近从2013 VSRC降级到了2012 MSVC,但进行了干净的卸载。


3
v120是Visual Studio 2013工具集。请修改您的项目文件,改用v110工具集(项目 -> 属性 -> 常规 -> 平台工具集)。 - IInspectable
@IInspectable 非常感谢 - 这解决了第二个错误。我以为两个错误是相关的。 - Jebathon
我撤销了你的编辑。否则,这个问题将失去对其他人有价值的信息。 - IInspectable
抱歉,我忘记了这篇文章更多地是为网站而非用户服务。 - Jebathon
在文本编辑器中打开您的 .vcxproj 文件,查看是否有任何 v120 的出现。具体来说,所有 <PlatformToolset> 元素都应该是 <PlatformToolset>v110</PlatformToolset> - IInspectable
2个回答

53

无法找到v120(Platform Toolset = 'v120')的生成工具

项目 -> 属性 -> 常规 -> 平台工具集(正如IInspectable正确评论所述)。

项目文件包含ToolsVersion="12.0"(...)将该项目视为ToolsVersion="4.0"

  1. 右键单击项目 -> 卸载项目
  2. 右键单击项目 -> 编辑(名称)。vcxproj
    • 更改此行:<Project DefaultTargets="Build" ToolsVersion="12.0" ...
    • 为:<Project DefaultTargets="Build" ToolsVersion="4.0" ...
  3. 保存,关闭,右键单击项目 -> 重新加载项目

1
简单而且不需要安装任何额外的东西,这是最好的答案。 - Andiana
4
相比于简单安装构建工具12,为什么有人选择这样做?对于完全不熟悉VS的人来说,将项目设置为使用旧版(或不同版本)的构建工具可能会引入构建问题。 - Tor
1
两个答案都是正确的。这些是关于如何将项目降级为VS2012项目的说明。Tod Thomson的答案允许您在不编辑项目文件的情况下在VS2012中构建项目。 - Mick
这对我没有解决。我的vcxproj文件已经设置了ToolsVersion="4.0",但是仍然存在相同的构建错误。 - Scorb
正确的解决方案。一个小加法。不一定需要卸载和重新加载项目。在Visual Studio中仅保存项目,在文本编辑器中编辑vcxproj并保存项目即可。 Visual Studio会在检测到vcxproj已被外部更改时提示重新加载项目。 - MyGeertRo

29

7
这个解决了我的在 Jenkins 上构建 .NET 项目的问题。 - Alfredo Cavalcanti
即使安装了Microsoft Build Tools 2013,我仍然无法从MSBuild命令行构建针对VC++ 12工具集的C++项目。 - janglin
1
如果您的计算机上没有安装Visual Studio,您可以使用Build Tools 2013来构建托管应用程序。此下载包中还包括Visual Basic和C#编译器,但不包括C++。 - Tod Thomson
2
安装这些工具后,您可以使用VS2012构建使用VS2013创建的.NET解决方案。 - Mick
3
微软构建工具2015 - https://www.microsoft.com/en-in/download/confirmation.aspx?id=48159 - Soman Dubey

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接