在软件开发过程中,经常会遇到需要将较新版本的开发工具创建的项目文件转换为较旧版本可识别的格式的情况。本文介绍的是一个可以将Visual C++7.0 的项目文件(.sln/.vcproj)转换为 Visual C++ 6.0 可识别的项目文件(.dsw/.dsp)的工具。这种转换在没有官方支持的情况下尤为重要,因为它可以避免从头开始重建项目的风险,节省时间并减少错误。
首先,微软(MS)并没有提供这样的转换工具。当开发者需要在不同版本的Visual C++之间迁移项目时,没有适当的转换工具会非常不便。没有这个工具,开发者可能不得不从头开始重建项目,这不仅浪费时间,而且容易出错。以下是这个工具可能用到的一些场景:
这个工具是一个命令行程序,使用格式如下:
prjconverter [.sln]
例如:
prjconverter c:\tmp\betterxml\betterxml.sln
要获取信息,请在控制台中单独输入:
prjconverter.exe
转换过程包括几个步骤,以确保工作的正确性。.sln 解决方案文件被打开并转换为 .dsw 文件格式,同时转换所有项目声明、依赖关系和源代码控制标签。然后,所有的 .vcproj 项目文件被转换为 .dsp 文件。使用 MSXML 来解析 .vcproj 文件格式,并构建出它的元模型。接下来要做的,就是将所有这些 XML 内容序列化为标准的 .dsp 符号行。
当然,关心项目配置(调试、发布等),以及自定义文件配置设置。
在提供的代码中:
事实上,vcprojconfiguration.cpp 完全反映了这个元模型(就像它是内部 MS 代码一样)。