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

C++ Visual Studio 2013,错误MSB8020:找不到Visual Studio 2010的生成工具,c++,visual-studio,visual-studio-2013,msbuild,firebreath,C++,Visual Studio,Visual Studio 2013,Msbuild,Firebreath,首先,我想指出的是,我花了一些时间研究这个问题,并为类似的问题提出了解决方案,如“没有帮助” 问题背景 我需要将Firebreath插件项目(我以前没有参与过)从PC_1迁移到PC_2 据我所知,该项目于Visual Studio 2010在PC_1上启动,后来转移到Visual Studio 2013 Pro。有一个解决方案由19个项目组成。我有一个说明,为了得到插件安装程序,我应该首先构建project_x,然后构建project_y_WiXInstall。这两个步骤在这台机器上都可以正常

首先,我想指出的是,我花了一些时间研究这个问题,并为类似的问题提出了解决方案,如“没有帮助”


问题背景 我需要将Firebreath插件项目(我以前没有参与过)从PC_1迁移到PC_2

据我所知,该项目于Visual Studio 2010在PC_1上启动,后来转移到Visual Studio 2013 Pro。有一个解决方案由19个项目组成。我有一个说明,为了得到插件安装程序,我应该首先构建project_x,然后构建project_y_WiXInstall。这两个步骤在这台机器上都可以正常工作

然后是PC_2,它在我开始工作之前安装了VisualStudio2015社区。我已经删除了它,安装了Visual Studio 2013 Pro(版本12.0.21005.1 REL-与PC_1上的版本完全相同),移动了所有需要的文件,我正在尝试消除所有编译错误。到目前为止,我发现我必须安装Cmake 2.8、Windows驱动程序工具包7.1并手动覆盖

问题描述 目前,当我尝试在新机器上编译项目时,我得到了(这是一个图像链接,因为我还不能在此帐户上嵌入图像)。我不确定第一个错误消息是怎么回事,因为它看起来不完整,而且文件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'" />

什么没用
  • 错误描述建议使用
    升级解决方案…
    选项,但右键单击解决方案时没有这样的选项
  • 对于我在文章开头发布的问题,一个公认的答案是,我已经检查了我所有19个项目的属性(包括项目零检查),但它们的平台工具集已经设置为
    Visual Studio 2013(v120)
  • 我还尝试将所有项目的平台工具集更改为
    inherit from parent或project defaults
    。这导致它切换到
    VisualStudio2010(v100)(未安装)
    ,然后我右键单击项目并选择
    升级VC++编译器和库。在此之后,平台工具集返回到
    VisualStudio2013(v120)
    ,但它对编译错误没有帮助
  • 对于我在帖子开头发布的问题,有一个不被接受的答案表明,我已经尝试在我所有的.vcxproj文件中搜索所有出现的
    10.0
    V100
    ,以替换它们,但我没有找到任何出现的
  • [编辑]
    我刚想到从命令行用MSBuild构建项目。与Visual Studio内部的错误相比,还有更多的信息,因此它可能有助于解决问题:

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

    如果以前的维护人员在没有使用cmake的情况下手动更改构建文件和/或将其迁移到较新版本的visual studio,那么他们会做一些非常丑陋的事情,所有的赌注都没有了。。。祝你好运

    这就是为什么所有firebreath文档(大部分是我写的)强烈要求构建目录是暂时的,并且您总是在cmake中更新项目文件


    希望有帮助

    谢谢!删除build目录的内容并运行prep脚本确实有帮助,我成功地在新机器上编译了插件。我仍然无法生成WiX安装程序项目(“从环境变量中删除尾随的反斜杠”对我没有帮助),但这是一个单独的问题,因此我将尝试自己解决它,或询问其他地方。很可能您尝试使用的WiX版本没有得到firebreath的完全支持;检查firebreath源代码中的wix.cmake,您可能能够更新它以与较新的wix一起工作,具体取决于所做的更改——或者您可以安装较旧版本的wix