105

在 Windows 8 x64 上使用 Visual Studio 2012 显然这是由于 msbuild 被移入 .net 引起的,但我还没有看到如何修复它。

4>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.Cpp.Platform.targets(44,5): error MSB8020: The builds tools for v120 (Platform Toolset = 'v120') cannot be found. To build using the v120 build tools, either click the Project menu or right-click the solution, and then select "Update VC++ Projects...". Install v120 to build using the v120 build tools.    
2>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.Cpp.Platform.targets(44,5):
error MSB8020: The builds tools for v120 (Platform Toolset = 'v120') cannot be found. To build using the v120 build tools, either click the Project menu or right-click the solution, and then select "Update VC++ Projects...". Install v120 to build using the v120 build tools.    
5>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.Cpp.Platform.targets(44,5): error MSB8020: The builds tools for v120 (Platform Toolset = 'v120') cannot be found. To build using the v120 build tools, either click the Project menu or right-click the solution, and then select "Update VC++ Projects...". Install v120 to build using the v120 build tools.
4

16 回答 16

84

如果您安装了 VS2013 并收到此错误,则您可能调用了错误的 MSBuild。借助 VS2013,Microsoft 现在将 MSBuild 作为 Visual Studio 的一部分。有关详细信息,请参阅此 Visual Studio 博客文章

特别要注意二进制文件的新位置:

在 32 位机器上,它们位于:C:\Program Files\MSBuild\12.0\bin

在 64 位机器上,32 位工具将位于:C:\Program Files (x86)\MSBuild\12.0\bin

以及以下 64 位工具:C:\Program Files (x86)\MSBuild\12.0\bin\amd64

中的 MSBuild%WINDIR%\Microsoft.NET\Framework\似乎无法识别 VS2013 (v120) 平台工具集。

于 2014-03-05T00:28:14.607 回答
75

http://en.wikipedia.org/wiki/Visual_C++

您使用的是 v110 的 Visual C++ 2012。v120 表示 Visual C++ 2013。

因此,要么更改项目设置以使用工具集 v110,要么在这台机器上安装 Visual Studio 2013 并使用 VS2013 编译它。

于 2013-11-06T05:35:08.177 回答
69

如果您使用的是 Visual 2012,请右键单击项目名称 -> 属性 -> 配置属性 -> 常规 -> 平台工具集 -> Visual Studio 2012 (v110)

于 2013-12-17T10:32:59.113 回答
13

从http://www.microsoft.com/en-US/download/details.aspx?id=40760下载并设置 Microsoft Build Tools 2013

于 2014-11-05T00:16:41.100 回答
7

加起来凯文和莱克斯的答案:

我们在工作中遇到了类似的情况,开发人员和构建服务器都有 Visual Studio 2013。我们的解决方案有一个 VS 2013 C++ 项目,并且在开发人员的机器或 IDE 中的构建服务器上构建时编译良好。问题在于使用 TFS 构建定义触发构建时。我们仍在使用旧的构建模板(版本 11.1)而不是 12.0。幸运的是,在模板 xaml 文件中添加一个简单的属性就解决了这个问题。在序列部分“编译项目”中,有一个以开头的 xaml 节点

mtbwa:MSBuild CommandLineArgument=....

根据 Kevin 的回答,您可以添加“ToolPath”属性并将其指向您希望调用的 MSBuild.exe 的正确路径。例如:

ToolPath="C:\Program Files (x86)\MSBuild\12.0\Bin"
于 2014-06-03T19:01:38.797 回答
6

浪费了4个多小时。

我有Visual Studio 2017 Enterprise,其中一个项目有以下错误:

找不到 v120(平台工具集 = 'v120')的构建工具

为了解决上述错误,我尝试安装以下所有内容:

但是,上述方法均无效。

后来,安装了Visual Studio 2013 Ultimate,然后一切正常。

看起来,旧的 Visual Studio 是解决这个问题的必要条件。

希望能帮助到你。

于 2018-10-30T06:18:56.420 回答
4

加起来路易斯的答案:

或者,ToolVersion="12.0"如果您使用 Visual Studio 2013 而不是使用属性,则可以使用ToolPath属性。详情访问http://msdn.microsoft.com/en-us/library/dd647548.aspx

所以你不会被迫使用绝对路径。

于 2014-07-14T07:29:01.040 回答
3

当在VS2015中打开一个VS2013 C++项目,出现“找不到v120的构建<PlatformToolset>v120</PlatformToolset>工具<PlatformToolset>v140</PlatformToolset>... .

于 2016-10-26T14:31:14.413 回答
1

在 VS 2012 中,我收到“SMB2 无法构建:错误 1 ​​错误 MSB8020:找不到 Visual Studio 2010 的构建工具(平台工具集 = 'v100')。要使用 v100 构建工具进行构建,请单击“项目”菜单或右键单击解决方案,然后选择“更新 VC++ 项目...”。安装 Visual Studio 2010 以使用 Visual Studio 2010 构建工具进行构建。”

我不顾一切地尝试了以下建议:在解决方案资源管理器中选择解决方案,然后单击“更新 VC++”菜单项。这做了一些更新,然后开始了一个成功的构建。

“更新 VC++”菜单项不再出现在解决方案菜单中。

于 2014-10-09T17:39:57.213 回答
1

当我删除 VS 2013 社区更新 5 并切换到 VS 2015 社区版时,我遇到了类似的问题

以及在 windows phone 8.1 项目中遇到的问题,它抱怨没有正确的 msbuild 工具集以及即使安装了模拟器也没有安装。

我知道问题的根源是上次卸载留下的 VS 2013 社区设置,即使卸载过程顺利,控制面板没有问题,这对我来说一切都搞砸了。

我尽我最大的努力删除了所有留下的文件,但总是有一些东西留下。

唯一为我修复的是一个全新的 Windows 10 x64 安装,然后我安装了 VS 2015 社区版,就是这样!对我来说没有更多错误,wp8.1 模拟器也可以正常工作!!

就我而言,现在我完全确定以前的 Visual Studio 安装设置对我来说一切都搞砸了,因为我没有找到任何方法并试图完全删除 VS 2013 社区文件和设置,我不得不为此付出代价并重新安装我的操作系统。

如果您能找到完全擦除最后一个 Visual Studio 安装文件的方法,您可能可以避免重新安装操作系统。

PS:只有在您尝试了所有可能的方法之后才尝试此解决方案(操作系统重新安装),然后如果没有任何效果,然后......将此解决方案作为最后的手段。

于 2015-12-19T20:28:42.230 回答
0

在 VS2013 中设置所有项目以正确构建工具,您可以在解决方案资源管理器中右键单击解决方案并选择“重新定位解决方案”。它将更改所有项目(您在打开的对话框中使用复选框选中的所有内容),因此错误将消失。

于 2015-02-04T11:53:42.160 回答
0

就我而言,我双击了 Visual 2013 sln 文件并打开了 Visual 2012(而不是 Visual 2013)。尝试使用 Visual 2012 进行编译时,平台工具集设置为“v120”的项目显示了上述错误。但是,使用 Visual 2013 重新打开 sln 时,平台工具集设置为“Visual Studio 2013 (v120)”——这次请注意全名——实际上为我完成了这项工作。该项目现在编译良好。

于 2015-05-19T20:51:20.390 回答
0

我在 VS2015 中构建 USBView 项目时遇到了同样的错误。我通过将“平台工具集”设置选择为“Visual Studio 2015 (v140)”并右键单击解决方案(在 VS2015 中)并选择“重新定位解决方案”并在该对话框中选择 10.0.10240.0 来删除此错误。

似乎还有来自 microsoft 的 ProjectUpgradeTool,它假设将旧项目转换为升级到 VS2012 后的 VS,但我无法在我的机器上找到该工具。

我仍然需要在this的帮助下修复一些新的链接器错误。

于 2015-11-20T21:02:23.210 回答
0

我有一个类似的问题。VS 2015 社区 (MSBuild 14) 构建一个 c++ 应用程序,想使用 VS 2010 (v100) 工具。这一切都给 msbuild 一个无效的配置选项。奇怪的。

因此,重新检查所有这些选项和参数。

于 2016-06-13T12:10:52.343 回答
0

如果您使用cmake、JUCE 等make 生成器,请尝试设置正确的 VS 版本目标(2013、2015、2017)并再次重新生成解决方案

于 2017-08-25T09:24:57.090 回答
0

我在构建一些项目时遇到了同样的问题。

我使用了 Visual Studio 2015 IDE,它工作正常,但是在从 PowerShell 脚本进行构建时,它给出了与工具集相关的“找不到 v140(平台工具集 ='v140')的构建工具。” 错误

所以最终问题是为各自的项目指向不正确的 MSBUILD exe。

早些时候我指向 $MSBUILD="C:\windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe

当我更新脚本指向 $MSBUILD="C:\Program Files (x86)\MSBuild\14.0\Bin\MSBuild.exe" 并且构建成功

因此,要解决此问题,请确保使用正确的 MSBUILD。

于 2018-03-29T08:49:34.373 回答