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

Posted

技术标签:

【中文标题】找不到 v120(平台工具集 = \'v120\')的构建工具【英文标题】:The builds tools for v120 (Platform Toolset = 'v120') cannot be found找不到 v120(平台工具集 = 'v120')的构建工具 【发布时间】:2013-11-17 00:57:55 【问题描述】:

在 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.

【问题讨论】:

CLI 提示:要使用首选 PlatformToolset 构建任何解决方案,您可以像这样覆盖它(VS2013):"\Program Files (x86)\MSBuild\12.0\Bin\MSBuild" .\path\to\MySolution.sln /p:PlatformToolset=v120(如果您在 PowerShell 中,请将 & 放在 \Progr.. 之前) .对于VS2015,它将变为"\Program Files (x86)\MSBuild\14.0\Bin\MSBuild"/p:PlatformToolset=v140等等。 【参考方案1】:

如果您安装了 VS2013 并收到此错误,则您可能调用了错误的 MSBuild。借助 VS2013,Microsoft 现在将 MSBuild 作为 Visual Studio 的一部分。详情请见this Visual Studio blog posting。

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

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

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

和 64 位工具位于:C:\Program Files (x86)\MSBuild\12.0\bin\amd64

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

【讨论】:

当我遇到 OP 中描述的相同问题时,这个答案对我来说是正确的答案。 如何更改 MSBuild 的路径? 你想做什么? @rharrison33 当我使用 VS2013 命令提示符时,使用了正确版本的 msbuild。运行 VS2012 命令提示符使用了不正确的 msbuild 位置。不太清楚为什么 VS2013 安装了 VS2012 命令提示符,但需要注意... 当我使用 C:\Program Files (x86)\MSBuild\12.0\bin\MSbuild.exe 时,在 VS2012 命令提示符下使用 v120 工具集构建对我有用。【参考方案2】:

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

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

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

【讨论】:

但是,但是......即使我的机器上安装了 VS 2013,我也会收到此错误! 您解决了吗?我有类似的问题。如果我从 TFS Team Build 构建,我会得到同样的错误。但是,我可以从 VS 2013 IDE 和 VS 2013 命令提示符构建良好。 我在这里查看了安装在 TFS 构建服务器上的软件列表:listofsoftwareontfshostedbuildserver.azurewebsites.net 我认为这会起作用(我怀疑这应该可以构建,但我还没有尝试过)。我注意到 VS 2013 并没有实际安装,只是安装了一些。 我在构建服务器上安装了 VS 2013 仍然有问题。 请注意,您的解决方案可能有多个项目。因此,通过右键单击项目(不是解决方案)-> 配置属性-> 常规-> 平台工具集(这是在 VS2013 上)来检查所有这些的属性【参考方案3】:

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

【讨论】:

这解决了我的情况。我尝试使用 VS2013,然后当我回到 VS2012 时遇到了这个问题。请注意,您必须为解决方案中的每个项目执行此操作。 这篇带有解决方案和方向的帖子非常清晰易懂。太糟糕了,在我修复了 v110 问题之后,2012 年仍然给我带来了一堆错误。我可以运行完全相同的 C代码在 2013 上运行没有问题,但 2012 仍然可以设法找到错误。 2012 减慢了编码速度,这就是我现在只使用 2013 的原因。 更改了平台工具集和 Windows SDK 版本。成功了!【参考方案4】:

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

【讨论】:

Microsoft Build Tools 2013 仅用于构建托管应用程序 @Kim Ki Won: ***.com/questions/37721281/…【参考方案5】:

将 Kevin 和 Lex 的答案加起来:

我们在工作中遇到了类似的情况,开发人员和构建服务器都有 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"

【讨论】:

【参考方案6】:

在这上面浪费了 4 个多小时。

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

找不到 v120 的构建工具(Platform Toolset = 'v120')

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

Microsoft 构建工具 2013 (v120 工具)https://www.microsoft.com/en-US/download/details.aspx?id=40760 微软构建工具 2015https://www.microsoft.com/en-in/download/details.aspx?id=48159 Visual Studio 构建工具 2017https://visualstudio.microsoft.com/downloads/#build-tools-for-visual-studio-2017

但是,以上都不起作用。

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

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

希望对你有帮助。

【讨论】:

【参考方案7】:

加起来路易斯的答案:

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

所以你不必强制使用绝对路径。

【讨论】:

【参考方案8】:

在VS2015中打开一个VS2013 C++项目,出现“找不到v120的构建工具... ,然后关闭并重新打开解决方案。

【讨论】:

【参考方案9】:

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

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

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

【讨论】:

【参考方案10】:

当我删除 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 安装文件的方法,您或许可以避免重新安装操作系统。

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

【讨论】:

在 VS 2015 社区的全新安装 中出现此错误。 Microsoft 没有 x64 的正确路径。【参考方案11】:

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

【讨论】:

试过了。对我的 VS Community 2015 没有帮助。:-/【参考方案12】:

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

【讨论】:

【参考方案13】:

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

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

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

【讨论】:

【参考方案14】:

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

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

【讨论】:

【参考方案15】:

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

【讨论】:

【参考方案16】:

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

我使用 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。

【讨论】:

以上是关于找不到 v120(平台工具集 = 'v120')的构建工具的主要内容,如果未能解决你的问题,请参考以下文章

错误 MSB8052:MSVC 工具集版本“14.28.29333”与“v120”平台工具集不兼容

错误MSB8008:指定的平台工具集(v120)未安装或无效[重复]

使用平台工具集 v120 (Visual Studio 2013) 在 Visual Studio 2015 中创建 C++/CLI 项目

VS2013 "v120_xp" 默认作为平台工具集

将 Platform Toolset 从 v120 升级到 v142 时的编译问题(visualstudio 2019)

VS2012 使用 C++ 编译器 2012 年 11 月 CTP (v120) 强调错误错误