Visual Studio Platform 2015工具集=' v141'无法找到

时间:2017-04-09 22:37:30

标签: c++ visual-studio-2015 openframeworks

我试图在Visual Studio中使用OpenFrameworks(一个使用C ++的库)编译项目。构建设置为Release和X64,在项目属性中我将Platform Toolset设置为Visual Studio 2015(v140)

然而,每当我尝试构建项目时,我都会得到相同的错误(等等)

  

错误MSB8020 v141的构建工具(Platform Toolset =' v141')   无法找到。要使用v141构建工具进行构建,请安装   v141构建工具。

我知道v141来自新版本的MSVS 2017但我不想升级到新版本与OpenFrameworks不兼容。我已经尝试过多次从头开始重建项目,并且还查看了VCXPROJ文件并验证了所有内容都设置为V140 - 它确实如此。一切都很奇怪。

似乎在构建时,某些东西正在为v141设置一个要求,但我似乎无法找到它的来源。有没有人有想法?

6 个答案:

答案 0 :(得分:17)

我有这样的问题。解决方案是:打开菜单“Project” - > Properties-> Configuration Properites-> General - 并选择platform toolset v140。

答案 1 :(得分:7)

在克隆基于节点的项目后尝试npm install时遇到同样的错误。它有一个npm依赖项,需要编译C ++源代码。

我已修改我的VS2017安装,以包含Individual Components - > VC++ 2017 version 15.7 v14.14 latest v141 tools

但这没有帮助。

我连续应用了这些命令

  1. npm install -g node-gyp

  2. npm install --global --production windows-build-tools

  3. 第一个没有效果,但第二个没有效果,然后npm install命令成功完成。

答案 2 :(得分:3)

对于此错误以及类似的错误,对于其他平台(例如VS2013),通常会发生此问题,因为您在安装了较新版本的VS后安装了旧版本的VS.我的观察是,这将影响所有Visual Studio C ++项目,并且您必须手动设置它们以针对您尝试在其下构建项目的给定VS版本的特定工具集。

答案 3 :(得分:0)

在其中一个答案的注释中解决了此问题,但对我有用。我同时安装了v140和v141构建工具,因此当我不得不将v140构建工具用于某些用途时,我将VCTargetsPath变量设置为v140构建工具的路径。在我的环境变量中删除此变量最终为我解决了此问题。

enter image description here

答案 4 :(得分:0)

enter image description here

如果有人遇到相同的问题。 原因:当有人尝试打开在最新VS版本(VS2015 / 2017)上创建/构建的现有解决方案,并尝试使用向后/旧版本的VS实例打开时。然后可能会发生此错误。

请尝试以下步骤。 右键单击项目->属性->配置属性。 将``目标平台版本''设置为支持的操作系统版本,即8.1> Win7和10 Win10 将“平台工具集”设置为已安装的Visual Studio版本。

重建并享受:)

答案 5 :(得分:0)

从命令行构建时出现 v141 错误,但在 Visual Studio 中没有:

<块引用>

找不到 v141 的构建工具(平台工具集 = 'v141')。要使用 v141 构建工具进行构建,请安装 v141 构建工具。或者,您可以通过选择“项目”菜单或右键单击解决方案,然后选择“重定向解决方案”来升级到当前的 Visual Studio 工具。

原来是因为我调用了错误的 vcvars,所以我使用了错误版本的 msbuild.exe:

:: wrong (Visual Studio 2015)
call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x64 >NUL
:: correct (Visual Studio 2017)
call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Auxiliary\Build\vcvars64.bat" x64 >NUL

不确定这是否可能是 inside 视觉工作室的错误,但我希望这对未来的搜索者有所帮助...