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'" />
什么没用
升级解决方案…
选项,但右键单击解决方案时没有这样的选项Visual Studio 2013(v120)
inherit from parent或project defaults
。这导致它切换到VisualStudio2010(v100)(未安装)
,然后我右键单击项目并选择升级VC++编译器和库。在此之后,平台工具集返回到VisualStudio2013(v120)
,但它对编译错误没有帮助
10.0
和V100
,以替换它们,但我没有找到任何出现的我刚想到从命令行用MSBuild构建项目。与Visual Studio内部的错误相比,还有更多的信息,因此它可能有助于解决问题:因此,您在这里缺少的是FireBreath项目是使用CMake构建的——构建目录的实际内容应该始终是完全临时的,并且永远不会存储在源代码管理中。要在新计算机上构建项目,需要从头开始再次运行prep命令 如果以前的维护人员在没有使用cmake的情况下手动更改构建文件和/或将其迁移到较新版本的visual studio,那么他们会做一些非常丑陋的事情,所有的赌注都没有了。。。祝你好运 这就是为什么所有firebreath文档(大部分是我写的)强烈要求构建目录是暂时的,并且您总是在cmake中更新项目文件
希望有帮助 谢谢!删除build目录的内容并运行prep脚本确实有帮助,我成功地在新机器上编译了插件。我仍然无法生成WiX安装程序项目(“从环境变量中删除尾随的反斜杠”对我没有帮助),但这是一个单独的问题,因此我将尝试自己解决它,或询问其他地方。很可能您尝试使用的WiX版本没有得到firebreath的完全支持;检查firebreath源代码中的wix.cmake,您可能能够更新它以与较新的wix一起工作,具体取决于所做的更改——或者您可以安装较旧版本的wix