如何将解决方案从Visual Studio 2010降级到Visual Studio 2005?

18
我有一个非常大的Visual Studio 2010解决方案。我正在使用Visual Studio 2005,所以我想将解决方案转换为所需版本。基本上,这是便携式的C++代码,因此也应该可以在Visual Studio 2005上编译。但是,在“*.sln”文件中更改版本是无效的,因为“*.vcxproj”格式与旧的“*.vcproj”格式完全不同。

手动重新创建解决方案不是选项,因为它太大了。还可能存在一些非默认的编译器标志、依赖项等,我不知道(而且我不能查看所有这些我不理解的XML垃圾)。

如何将C++ Visual Studio 2008项目降级到2005上已经有一个相关的问题。然而,那里建议的实用程序只支持Visual Studio 2008最多。

有什么建议吗?


6
我认为你完了。 - Brian R. Bondy
2
如果有一种方法,我不会相信它。手动操作吧。 - MK.
尝试了一下这个http://sourceforge.net/projects/vsconverter/? [我没有尝试过] - Eugen Constantin Dinca
2
这个VS2010解决方案是从哪里来的?版本控制系统存储库中是否仍存在VS2008或VS2005解决方案? - dalle
1
VS2010还会生成makefiles吗?这可能是最不痛苦的路线... - JimR
显示剩余2条评论
4个回答

4

很遗憾,每个专有的IDE都认为它需要创建自己的项目文件格式,这真的很糟糕。

"亲爱的IDE开发者们,只需使用Makefiles并创建一个漂亮的GUI,以便没有Makefile知识的人也可以使用它!" 在VS6中,至少可以导入/导出Makefiles,但今天不再支持。而且可以使用nmake进行自动构建。不需要安装IDE,只需要工具链,可以通过简单的检查来获得,无需安装。

我现在使用CMake。它是免费的,跨平台的,受到KDevelop、QtCreator等免费IDE的良好支持。它可以生成Makefiles和Visual Studio项目。

因此,您只需要维护一个项目源文件,即CMakeLists.txt文件,就可以使用任何IDE。不用担心不同版本的Visual Studio或其他专有项目文件格式的问题。

这样,您可以为开发生成VS项目,并使用nmake生成Makefiles进行命令行构建,就像那些早期的好日子一样。

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


3
  1. 到目前为止,VS仍支持nmake项目。
  2. 微软已经转向使用MSBuild来描述项目的构建过程。
  3. 我对于通过GUI编辑makefile的程度持怀疑态度。
  4. 你认为为什么GNU make应该成为“标准”?它是如此丑陋的构建系统。它要求您手写所有这些内容(祝您好运,使您的makefile可以跨不同的工具链移植),或者使用甚至更难看的autoconf工具。还有更好的构建系统(boost build,scons)。
- Yakov Galka
1
  1. 我讨厌CMake,因为就像configure/make一样,它不是一个单步构建系统。尝试在一个命令行调用中构建4个不同的配置... boost.build在很大程度上解决了这个问题。
  2. 它如何回答这个问题?
- Yakov Galka
1
在你说的所有内容中,我同意你的一个观点:每个IDE都有自己的项目文件格式真的很糟糕。此外,在我看来,项目不应该存在。IDE应该能够“打开”任意的makefile(无论是nmake、gmake、boost.build还是其他任何构建系统),它将仅用于构建目的,并且我想看到的不是“解决方案资源管理器”,而是一个以打开的makefile为根的普通文件系统树。 - Yakov Galka

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

1
它并没有解决最困难的部分:我无法手动设置所有编译器标志和依赖项在一个大约100个项目的解决方案中。 - Yakov Galka

1
在我的工作中,我制作了一个实用程序,利用了EnvDTE.dll并扫描了vcproj文件以及可选的sln文件中的所有vcproj文件。它将所有设置与“模板”进行比较,并发出警告或选择更新设置以更正值。我们使用此实用程序以便验证所有项目中的设置是否正确且一致。由于其他优先事项,我尚未将该实用程序更新到2010年版。
Visual Studio 2008Visual Studio 2010,EnvDTE没有太多变化。也许可以创建一个简单的实用程序,使用DTE100打开vcxproj文件并使用DTE90或更早版本保存它。

0

3
哎呀,“在VS2010中,C/C++有一个全新的项目文件格式,因此这个工具将无法将C/C++项目转换到或从这个新格式中转换。很抱歉...” - Rup
哎,那真糟糕。我原以为那只是一句老话,因为截图让你相信它可以正常工作。我想你现在可能没什么办法了。 :-( - Caladain

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接