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获得最新的版本号。
相关文章推荐
- 股市的起源发展和意义
- [ 笔记 ] coreseek/sphinx 全文检索简介
- android三个小球互换位置loading动画
- 原来Java中有两个ArrayList
- 判断用户登陆信息(一)硬性判断
- POJ 1002_487-3279
- mysql 乱码 utf8
- 索尼PS4和微软Xbox One对比解析
- BulkCopy频繁执行产生的性能问题
- bzoj 1093 [ZJOI2007]最大半连通子图(scc+DP)
- BZOJ 1030 - AC自动机 + DP
- Hadoop 下一代 MapReduce - 集群参数设置与启动
- 关于媒体查询
- C#中调用控制台程序时隐藏控制台窗口
- EXT4参数优化及测试
- Mysql 数据库学习 简单的增删改查
- iOS Mac系统下Ruby环境安装
- CCNP学习笔记17--vlan间路由
- java数据结构(1)
- T1(0860)