将C++项目从VS 2005升级到VS 2010 Express时的兼容性问题

GKE*_*KED 5 projects-and-solutions visual-studio-2010 visual-studio-express visual-studio visual-c++

我得到了一些用Visual Studio 2005版本构建的文件.

但是,当我尝试将.sln文件转换为在VS 2010 Express C++中使用时,我遇到了问题.

该错误给出了路径,并表示即使文件存在,也找不到该文件.我知道两者之间不应该有任何兼容性问题,除非我遗漏了什么.有没有人遇到过这类问题?

确切的错误消息是:

"转换报告 - GeoM\GeoM.vcproj:转换项目文件'C:\ Users ...\GeoM\GeoM.vcproj'.找不到文件'C:\ Users ...\GeoM\GeoM.vcproj'.\项目升级失败.

Cod*_*ray 10

最可能的解释是您的C++项目已配置为支持x86以外的平台(例如x64或IA-64)的编译.

Visual C++项目升级指南中的Visual C++博客对此进行了解释:

在升级之前,请确保已安装所需的平台

在没有项目的所有可用平台的情况下在计算机上转换项目将导致转换错误.例如,如果您尝试在不支持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.
Run Code Online (Sandbox Code Playgroud)

这是设计的,因为转换需要评估缺失平台中的属性以进行成功转换.您可以通过查看以下目录来验证计算机上安装的平台:( %ProgramFiles%\MSBuild\Microsoft.cpp\V4.0\Platforms%ProgramFiles(x86)%\MSBuild\Microsoft.cpp\V4.0\Platforms在x64计算机上),用于计算机上安装的平台.

由于Express版本不支持为这些平台中的任何一个编译C++应用程序,因此升级向导无法转换项目并返回所描述的错误消息.

此升级成功的唯一方法是使用完整版本的Visual Studio(安装了适当的平台编译器工具),或者如果编辑解决方案/项目文件,则必须删除任何非x86的提及组态.您应该可以使用简单的文本编辑器(如记事本)执行此操作,但一如既往,请先备份以防止您销毁无法替代的内容.