我获得了一些使用Visual Studio 2005版本构建的文件。
但是,当我尝试将.sln文件转换为在VS 2010 Express C ++中使用时,我遇到了问题。
该错误给出了路径,并表示即使文件存在,也找不到该文件。我知道两者之间不应该有任何兼容性问题,除非我遗漏了什么。有没有人遇到过这类问题?
确切的错误消息是:
“转换报告 - GeoM \ GeoM.vcproj:转换项目文件 'C:\用户\ GEOM \ GeoM.vcproj'。找不到文件'C:\ Users ... \ GeoM \ GeoM.vcproj'。 \ 项目升级失败。
答案 0 :(得分:10)
最可能的解释是您的C ++项目已配置为支持x86以外的平台(例如x64或IA-64)的编译。
这在Visual C ++博客的Visual Studio 2010 C++ Project Upgrade Guide:
中有解释确保在升级之前安装了所需的平台
在没有项目所有可用平台的计算机上转换项目将导致转换错误。例如,如果您尝试在不支持Itanium平台的Visual Studio Professional SKU上使用Itanium Platform转换项目,您将看到如下所示的转换错误:
Failed to upgrade 'Debug|<Itanium>'. Please make sure you have the corresponding platform installed under '%vctargetspath%\platforms\Itanium'. Cannot load the project due to a corrupt project file. The following error has occurred during XML parsing: File: D:\Sample\ConsoleApp\ConsoleApp.vcproj Line: 28 Column: 5 Error Message: System error: -2147154677. The file 'D:\Sample\ConsoleApp\ConsoleApp.vcproj' has failed to load.
这是设计使用,因为转换需要评估缺少平台中的属性以进行成功转换。您可以通过查看以下目录来验证计算机上安装了哪些平台:
%ProgramFiles%\MSBuild\Microsoft.cpp\V4.0\Platforms
(或x64计算机上的%ProgramFiles(x86)%\MSBuild\Microsoft.cpp\V4.0\Platforms
),用于计算机上安装的平台。
由于Express版本不支持为这些平台中的任何一个编译C ++应用程序,因此升级向导无法转换项目并返回描述的错误消息。
此升级成功的唯一方法是使用完整版本的Visual Studio(安装了适当的平台编译器工具),或者如果编辑解决方案/项目文件,则必须删除任何提及的非x86配置。您应该可以使用简单的文本编辑器(如记事本)执行此操作,但是一如既往地备份,以防您破坏不可替代的内容。