問題描述:
在每次發佈版本時,最簡單的就是在資源(*.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文件中直接修改,然後編譯相關庫,就可以看到相關庫的版本信息已經更改。
結論:
經過這樣的版本管理後,在隨後的發佈庫時,版本號的修改便省事多了,因爲是在單一文件中進行管理,而且哪些庫的版本號需要增加,以及與其它庫的關係,更加的清晰明瞭。