zoukankan      html  css  js  c++  java
  • 分享一个开源的批量修改VC工程属性的小工具

    作者:朱金灿

    来源:http://blog.csdn.net/clever101

     

     

    一.问题起源和定义

     

            在使用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开源协议,有兴趣请下载看看。

     

     




  • 相关阅读:
    细说Unity3D(一)——移动平台动态读取外部文件全解析
    React16新增生命周期与旧版本生命周期的区别
    refs的作用是什么,你在什么业务场景下使用过refs
    react setState 的用法
    webpack中,是借助loader完成的JSX代码的转化,还是babel?
    虚拟dom是什么?为什么虚拟dom会提升代码性能?
    react 性能优化的最佳实践?
    你会把数据统一放在 redux 中管理,还是共享数据放在 redux 中管理?
    redux 中间件的原理是什么?
    谈谈你对This对象的理解?
  • 原文地址:https://www.cnblogs.com/lanzhi/p/6470622.html
Copyright © 2011-2022 走看看