Visual Studio 2013,错误MSB8020:找不到用于Visual Studio 2010的生成工具

时间:2018-09-21 14:58:35

标签: c++ visual-studio visual-studio-2013 msbuild firebreath

一开始我想指出,我花了一些时间研究这个问题,并提出了类似this one之类的类似问题的解决方案,对我没有帮助。


问题背景

我需要将Firebreath插件项目(我以前没有做过)从PC_1迁移到PC_2。

据我所知,该项目是在 Visual Studio 2010 上的PC_1上启动的,后来又移至Visual Studio 2013 Pro。一个解决方案包含19个项目。我有一条指令说,为了获得插件安装程序,我应该先构建project_x,然后再构建project_y_WiXInstall。这两个步骤都可以在此计算机上正常运行。

然后有PC_2,在我开始使用它之前已安装了Visual Studio 2015社区。我删除了它,安装了Visual Studio 2013 Pro(版本12.0.21005.1 REL-与PC_1完全相同),移动了所有需要的文件,并且我试图摆脱所有编译错误。到目前为止,我已经确定必须安装Cmake 2.8,Windows Driver Toolkit 7.1并手动覆盖incorrect VCTargetsPath MSBuild variable

问题描述

当前,当我尝试在新计算机上编译项目时,我得到了these two errors(这是图像链接,因为我还无法在该帐户上嵌入图像)。我不确定第一条错误消息的处理方式,因为它看起来不完整,并且文件CUSTOMBUILD不存在,但是由于我修复的上一个编译错误也有一个类似的“工件”,因此我对此并不感到太烦作为第一个错误,并且在修复第二个错误后消失了。

第二条错误消息的覆盖部分是项目路径。错误源(Microsoft.Cpp.Platform.targets文件,第64行)如下所示:

<!-- Error out if toolset does not exists in Visual Studio 2010 or 2012 -->
<VCMessage Code="MSB8020" Type="Error" Arguments="$(_CurrentPlatformToolsetShortName);$(PlatformToolset)" Condition="'$(ToolsetTargetsFound)' != 'true'" />

没有帮助的地方

  1. 错误描述建议使用Upgrade Solution...选项,但是当我右键单击解决方案时没有这种事情
  2. 作为对我在帖子开头发布的问题的可接受答案,我已经检查了我所有19个项目(包括项目ZERO_CHECK)的“属性”,但其“平台工具集”已设置为{{ 1}}。
  3. 我还尝试过将所有项目的Platform Toolset更改为Visual Studio 2013 (v120)。这导致它切换到inherit from parent or project defaults,然后右键单击项目并选择Visual Studio 2010 (v100) (not installed)。此后,平台工具集又回到了Upgrade VC++ compiler and libraries,但对编译错误没有帮助。
  4. 作为我在博文开头发布的问题的不可接受答案,我尝试搜索所有Visual Studio 2013 (v120)10.0出现的所有内容.vcxproj文件来替换它们,但我没有发现它们的任何出现。

[编辑]

我只是想尝试从命令行使用MSBuild构建项目。与Visual Studio中的错误相比,还有更多的信息,因此也许可以解决以下问题:https://pastebin.com/JhN3dXM3

1 个答案:

答案 0 :(得分:0)

所以您在这里缺少的是FireBreath项目是使用CMake构建的-构建目录的实际内容应该始终是完全临时的,并且永远不要存储在源代码管理中。要在新计算机上构建项目,您需要再次从头开始运行prep命令。

如果以前的维护者在不使用cmake的情况下手动更改了构建文件和/或将其迁移到Visual Studio的较新版本中,则他们做了一些非常丑陋的事情,所有赌注都消失了……祝您好运。 >

这就是为什么所有的firebreath文档(我写了大部分内容)都强烈建议build目录是瞬态的,而您总是在cmake中进行项目文件的更新。

希望有帮助!