问题描述:
在每次发布版本时,最简单的就是在资源(*.rc)文件中修改当前文件和产品的版本号(如a.b.c.d),但是随着时间的推移,需要发布的DLL越来越多,于是每次修改时意味更多的时间和精力消耗,你得一个一个的打开各个DLL中的资源文件,然后修改,而且一不小心还会将版本号弄错。
解决方案:
多次这样之后,我觉得每次都要修改各个DLL很繁琐,既然VC支持宏开关,何不使用宏试一试呢?
新增一个文件version_ctrl.h,比如对于X.dll,定义如下宏:
// product
#define PRODUCTVERSION_NUM 1,0,0,0
#define PRODUCTVERSION_VALUE "1, 0, 0, 0"
// X.dll
#define FILEVERSION_X_NUM 1,0,0,0
#define FILEVERSION_X_VALUE "1, 0, 0, 0"
然后在X.dll中找到resource.h文件,在文件头增加
#include "version_ctrl.h"
右键点击"View Code"找开X.rc文件,找到
FILEVERSION 1,0,0,0
PRODUCTVERSON 1,0,0,0
FILEVERSION "..." "1, 0, 0, 0"
PRODUCTVERSION "..." "1, 0, 0, 0"
使用上述定义的宏替换相关字串,编译,可以看到X.dll文件的版本信息
当DLL较多时,使用单一文件version_ctrl.h进行管理,需要修改版本信息时,在version_ctrl.h文件中直接修改,然后编译相关库,就可以看到相关库的版本信息已经更改。
结论:
经过这样的版本管理后,在随后的发布库时,版本号的修改便省事多了,因为是在单一文件中进行管理,而且哪些库的版本号需要增加,以及与其它库的关系,更加的清晰明了。