tsvn 带有一个命令行程序 subwcrev.exe. 可以对一个指定文件进行一些宏替换, 比如: 将 $WCREV$ 替换成当前版本号. 这个是最有用的. 详细帮助见
http://tortoisesvn.net/docs/nightly/TortoiseSVN_zh_CN/tsvn-subwcrev-keywords.html
以 vc6 为例, 文件的版本信息保存在 rc 文件. 编译成 res 文件, 然后和其他 obj 一起 link. 现在的思路就是. 编辑 rc 文件, 将版本号比如 2.2.4.0 改成 2.2.4.$WCREV$, 在每次 link 之前, 先用 subwcrev.exe 处理 rc 文件, 进行宏替换. 然后调用 rc.exe 编译替换后的新文件. 生成 res 之后一起 link.
. 修改 rc 文件的 versioninfo 段成如下:
#ifdef _AUTOVERSION
FILEVERSION 2,2,4,$WCREV$
PRODUCTVERSION 2,2,4,$WCREV$
#else
FILEVERSION 2,2,4,0
PRODUCTVERSION 2,2,4,0
#endif
...
#ifdef _AUTOVERSION
VALUE "FileVersion", "2, 2, 4, $WCREV$/0"
VALUE "ProductVersion", "2, 2, 4, $WCREV$/0