现在的位置: 首页 > 自动控制 > 工业·编程 > 正文

一个开源的批量修改VC工程属性的小工具

2013-09-26 17:16 工业·编程 ⁄ 共 961字 ⁄ 字号 暂无评论

一.问题起源和定义

    在使用VC开发时,当一个解决方案的工程数多达几十个甚至上百个,因为工程设置基本是一样的,因此修改工程项目属性成了一件单调的事情。这里所说的工程属性包括输出目录、中间目录、预处理器、第三方库头文件路径和第三方库文件路径等等。

    传统上解决这个问题有两个办法:一个是自定义工程向导,通过自己的工程向导来生成具有统一设置的工程;二是使用属性表。但这两种办法有着严重的弊端:使用工程向导只是新建工程时可以统一设置,一旦以后有属性选项修改,还是得一一进行修改;属性表我发现只局限于设置第三方库的头文件和库文件,同时也必须在每个工程一一加上属性表(这个也可能我对属性表使用不熟有关,请熟悉的同学告诉我)。

    因此我需要一个批量修改工程属性的工具。

二.解决方案和已完成的工作

        于是利用周六一点时间开发了一个小工具SetPrjProps。SetPrjProps是这样工作的:

           SetPrjProps被设计一个命令行工具,其用法如下:

             SetPrjProps  ini文件  sln文件

      例如:  SetPrjProps    D:\dev-utility-tools\src\bcg_props.ini    D:\dev-utility-tools\src\Test.sln

        到时把SetPrjProps放在源码目录下,使用一个批处理文件就能调用。

        目前批量修改一个解决方案下的所有VC工程的属性已经实现,修改的工程属性涉及输出目录、中间目录、第三方库的头文件和库文件等等(目前仅支持VS2008的MFC、Win 32和控制台工程),具体请见源码。

VS解决方案文件和VC工程文件格式简单说明

        经过我研究,VS解决方案文件只是一个简单的文本文件,并非我之前以为的xml文件,所记录的工程路径包括两种:和解决方案文件处在同级目录的是相对路径,否则是绝对路径;VC工程文件则是一个xml文件,保存的是有意义的信息,即某项属性设置为空,则不保存到VC工程文件。

        源码已上传至http://code.google.com/p/dev-utility-tools/source,采用GPL V2.0开源协议,有兴趣请下载看看。

给我留言

留言无头像?