原理
SVN中的可执行文件SubWCRev.exe,该文件可以查看工作目录的当前svn号并且保存在变量$WCREV$
中。因此,可以先写一个批处理,然后在项目的预生成命令中执行该批处理文件。
VS编译时自动化生成版本示例:
在需要添加版本的工程目录下新建文件夹(以Setup为例), 在svn 客户端的安装目录下找到Subwcrev.exe并复制到Setup文件夹下(Subwcrev.exe 可执行文件通常在 svn 客户端的安装目录下,比如TortoiseSVN 是在其安装目录的bin文件夹下),另外新建批处理文件GenerateRevision.bat和生成版本模板文件version_template.h,目录如下图。
SubWCRev.exe用法
- 1
- 2
- 3
- 4
- 5
- 6
- 1
- 2
- 3
- 4
- 5
- 6
GenerateRevision.bat
- 1
- 1
- 1
- 2
- 1
- 2
version_template.h
- 1
- 2
- 3
- 4
- 5
- 6
- 1
- 2
- 3
- 4
- 5
- 6
注意version_template.h的最后要加一个换行符,不然编译时会以下错误,原因是version.h末尾缺少换行符
现在双击GenerateRevision.bat生成目标文件,在”%~dp0../工程目录”目录下找到version.h。
接下来在解决方案中添加现有项xxx.rc文件->双击xxx.rc文件打开资源视图->选中xxx.rc有右键“添加资源”->选择Version
修改xxx.rc文件内容,还有版本的其实信息在对应字符串修改
最后把GenerateRevision.bat添加到预编译文件
现在自动化生成版本配置完成,每提交一次代码,SVN上会记录一个版本信息,程序在每次预编译的时候执行会GenerateRevision.bat文件通过SubWCRev.exe获得最新的版本号。
感谢http://blog.csdn.net/zx3517288/article/details/50464799