C++ 如何将解决方案从VisualStudio2010降级到VisualStudio2005?

C++ 如何将解决方案从VisualStudio2010降级到VisualStudio2005?,c++,visual-studio,visual-studio-2010,visual-studio-2005,C++,Visual Studio,Visual Studio 2010,Visual Studio 2005,我有一个巨大的VisualStudio2010解决方案。我使用VisualStudio2005,因此我想将解决方案转换为所需的版本。基本上,它是一个可移植的C++代码,所以它也应该在Visual Studio 2005上编译。更改*.sln文件中的版本没有帮助,因为*.vcxproj格式与旧的*.vcproj格式完全不同 由于解决方案的大小,手动重新创建解决方案不是一个选项。此外,可能还有一些我不知道的非默认编译器标志、依赖项等(而且我无法查看所有我不了解的XML垃圾) 已经有一个相关的问题。但

我有一个巨大的VisualStudio2010解决方案。我使用VisualStudio2005,因此我想将解决方案转换为所需的版本。基本上,它是一个可移植的C++代码,所以它也应该在Visual Studio 2005上编译。更改*.sln文件中的版本没有帮助,因为*.vcxproj格式与旧的*.vcproj格式完全不同

由于解决方案的大小,手动重新创建解决方案不是一个选项。此外,可能还有一些我不知道的非默认编译器标志、依赖项等(而且我无法查看所有我不了解的XML垃圾)

已经有一个相关的问题。但是,该实用程序建议最多支持VisualStudio2008


有什么建议吗?

我还没有尝试过,但这看起来很有希望:


编辑:不,不承诺,抱歉:-(

在我的工作中,我制作了一个实用程序,它使用并扫描了vcproj文件,还可以选择扫描sln文件中的所有vcproj文件。它将所有设置与“模板”进行了比较并将发出警告或选择性地将设置更新为正确的值。我们使用此实用程序,以便在所有项目中验证设置是否正确和一致。由于其他优先级,我尚未将实用程序更新到2010年


从到,EnvDTE没有太大变化。也许可以创建一个简单的实用程序,使用DTE100打开vcxproj文件,并使用DTE90或更早版本保存它。

最简单的方法可能是在VS 2005中创建一个新项目,并使用“添加现有项”对话框将代码添加到项目中。我建议使用“空项目”作为项目类型,这样您就不会自动生成大量垃圾,您只需删除这些垃圾。

这真是太糟糕了,现在每个专有IDE都认为需要创建自己的项目文件格式。 “亲爱的IDE开发人员,只需使用Makefiles并为其创建一个漂亮的GUI,这样没有Makefile知识的人也可以使用它!”在VS6中,至少可以导入/导出Makefiles,但现在已经不可能了。而且可以使用nmake进行自动构建。无需安装IDE,只需简单签出即可获取工具链,无需安装

我现在使用CMake。它是免费的,跨平台的,在KDevelop、QtCreator等免费IDE中得到很好的支持。它可以生成Makefiles和Visual Studio项目。 因此,您只维护一个项目源,即CMakeLists.txt文件,并且可以使用任何IDE。使用不同版本的Visual Studio或其他专有项目文件格式都不会带来任何问题。 通过这种方式,您可以生成用于开发的或VS项目,并且可以像过去一样使用nmake为命令行生成生成makefile


顺便说一句,在CMakeLists.txt中更改设置要比单击各种GUI对话框容易得多。但这是个人喜好的问题。

如果有一种方法我不相信,我想你可以解决。手动操作。尝试过吗?[我没有尝试过]这个VS2010解决方案是从哪里来的?VS2008或VS2005解决方案是否可能仍然存在于版本控制系统存储库中?VS2010是否仍然生成makefiles?这可能是最不痛苦的途径…唉“VS2010中有一种全新的C/C++项目文件格式,因此此实用程序将无法将C/C++项目转换为或转换为这种新格式。抱歉…”Ack,这太糟糕了。我希望这只是一个旧的声明,因为屏幕截图会让您相信它是有效的。我想您是SOL…”-(这并不能解决最难的部分:我无法手动设置~100个项目解决方案中的所有编译器标志和依赖项。1)VS支持
nmake
项目,直到今天。2)MS切换到MSBuild来描述项目的生成。3)我怀疑在多大程度上可以让GUI编辑makefiles。4)为什么你认为gnu make应该成为“标准”?它是一个如此丑陋的构建系统。它要求你要么手工编写所有这些东西(祝你好运,让你的makefiles可以跨不同的工具链移植),或者使用更丑陋的autoconf工具。有更好的构建系统(boost-build、scons).5)我讨厌CMake,因为就像configure/make一样,它不是一个一步构建系统。尝试在一个命令行调用中构建4种不同的配置……boost.build在很大程度上解决了它。6)它如何回答这个问题?在你所说的所有问题中,我同意你的一点:每个IDE都有自己的项目文件格式,这很糟糕。此外,IMO项目不应该存在。IDE应该能够“打开”任意生成文件(可以是nmake、gmake、boost.build或任何其他生成系统),它将仅用于生成目的,而不是“解决方案资源管理器”,我希望看到一个普通的旧文件系统树,根在打开的生成文件中。