您的位置:首页 > 其它

VS编译时自动生成版本

2016-01-05 19:45 295 查看

原理

SVN中的可执行文件SubWCRev.exe,该文件可以查看工作目录的当前svn号并且保存在变量
$WCREV$
中。因此,可以先写一个批处理,然后在项目的预生成命令中执行该批处理文件。

VS编译时自动化生成版本示例:

在需要添加版本的工程目录下新建文件夹(以Setup为例), 在svn 客户端的安装目录下找到Subwcrev.exe并复制到Setup文件夹下(Subwcrev.exe 可执行文件通常在 svn 客户端的安装目录下,比如TortoiseSVN 是在其安装目录的bin文件夹下),另外新建批处理文件GenerateRevision.bat和生成版本模板文件version_template.h,目录如下图。



SubWCRev.exe用法

#SubWCRev.exe WorkingCopyPath Template DestFile

参数说明:
WorkingCopyPath:要查看的工作目录路径,一般取解决方案目录
Template:模版文件
DestFile:生成的目标文件


GenerateRevision.bat

"SubWCRev.exe" "%~dp0.." "%~dp0version_template.h" "%~dp0../工程目录/version.h" %1


%~dp0      标识当前目录
%1          当前输入的第一个参数


version_template.h

#define FILEVER        1,0,0,$WCREV$
#define PRODUCTVER     1,0,0,$WCREV$
#define STR_FILEVER     "1,0,0,$WCREV$"
#define STR_PRODUCTVER     "1,0,0,$WCREV$"


注意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获得最新的版本号。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: