VS之版本-编译时自动生成版本-自动获取svn版本号

原理

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:生成的目标文件
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

GenerateRevision.bat

"SubWCRev.exe" "%~dp0.." "%~dp0version_template.h" "%~dp0../工程目录/version.h" %1
 
 
  • 1
  • 1
%~dp0      标识当前目录
%1          当前输入的第一个参数
 
 
  • 1
  • 2
  • 1
  • 2

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$"


 
 
  • 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




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值