利用subwcrev.exe工具自动生成VS开发工具中的版本号
2015-08-05 10:48
429 查看
关于subwcrev.exe参见:
http://tortoisesvn.net/docs/nightly/TortoiseSVN_zh_CN/tsvn-subwcrev.html
http://tortoisesvn.net/docs/nightly/TortoiseSVN_zh_CN/tsvn-subwcrev-keywords.html
基本格式是:
SubWCRev WorkingCopyPath [SrcVersionFile DstVersionFile] [-nmdfe]
所以需要在VS对应的工程中新建两个文件,一个是SrcVersionFile和DstVersionFile,其中:
1.WorkingCopyPath工程所在的目录
2.SrcVersionFile含有SubWCRev.exe程序可以替换的宏;
3.DstVersionFile为更新svn之后把宏替换掉以后的目标文件。
例如:
SrcVersionFile为一个头文件,名字叫Template.Source.Version.h,其内容如下:
DstVersionFile文件为另外一个头文件,名字叫Source.Version.h,其内容如下:
然后在工程属性设置:
Build Event选项->Pre-Build Event的Command Line中输入:
subwcrev.exe “./” “./Template.Source.Version.h” “./Source.Version.h”
这样每次用svn更新代码时,svn的项目版本号也更新下来了,并最重替换掉 Template.Source.Version.h中宏WCREVWCREV,生成Source.Version.h中的内容。最后在其它文件中就可以使用这个VER_UMS_HQ_REVISION的定义了,例如在程序版本号中使用:
http://tortoisesvn.net/docs/nightly/TortoiseSVN_zh_CN/tsvn-subwcrev.html
http://tortoisesvn.net/docs/nightly/TortoiseSVN_zh_CN/tsvn-subwcrev-keywords.html
基本格式是:
SubWCRev WorkingCopyPath [SrcVersionFile DstVersionFile] [-nmdfe]
所以需要在VS对应的工程中新建两个文件,一个是SrcVersionFile和DstVersionFile,其中:
1.WorkingCopyPath工程所在的目录
2.SrcVersionFile含有SubWCRev.exe程序可以替换的宏;
3.DstVersionFile为更新svn之后把宏替换掉以后的目标文件。
例如:
SrcVersionFile为一个头文件,名字叫Template.Source.Version.h,其内容如下:
[code]#pragma once #define VER_UMS_HQ_MAJOR 2 #define VER_UMS_HQ_MINOR 2 #define VER_UMS_HQ_SVN $WCREV$ #define VER_UMS_HQ_REVISION "2.2.$WCREV$.0"
DstVersionFile文件为另外一个头文件,名字叫Source.Version.h,其内容如下:
[code]#pragma once #define VER_UMS_HQ_MAJOR 2 #define VER_UMS_HQ_MINOR 2 #define VER_UMS_HQ_SVN 8465 #define VER_UMS_HQ_REVISION "2.2.8465.0"
然后在工程属性设置:
Build Event选项->Pre-Build Event的Command Line中输入:
subwcrev.exe “./” “./Template.Source.Version.h” “./Source.Version.h”
这样每次用svn更新代码时,svn的项目版本号也更新下来了,并最重替换掉 Template.Source.Version.h中宏WCREVWCREV,生成Source.Version.h中的内容。最后在其它文件中就可以使用这个VER_UMS_HQ_REVISION的定义了,例如在程序版本号中使用:
[code]VS_VERSION_INFO VERSIONINFO FILEVERSION VER_UMS_HQ_MAJOR,VER_UMS_HQ_MINOR,VER_UMS_HQ_SVN,0 PRODUCTVERSION VER_UMS_HQ_MAJOR,VER_UMS_HQ_MINOR,VER_UMS_HQ_SVN,0 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L #else FILEFLAGS 0x0L #endif FILEOS 0x4L FILETYPE 0x2L FILESUBTYPE 0x0L BEGIN BLOCK "StringFileInfo" BEGIN BLOCK "040904e4" BEGIN VALUE "CompanyName", "Zealink.Com" VALUE "FileDescription", "Zealink.UMSHQ" VALUE "FileVersion", VER_UMS_HQ_REVISION VALUE "InternalName", "Zealink.UMS.HQ.dll" VALUE "LegalCopyright", "Zealink.Com All rights reserved." VALUE "OriginalFilename", "Zealink.UMS.HQ.dll" VALUE "ProductName", "UMS" VALUE "ProductVersion", VER_UMS_HQ_REVISION END END BLOCK "VarFileInfo" BEGIN VALUE "Translation", 0x409, 1252 END END
相关文章推荐
- 程序员那些事
- AD转换精度的计算
- HDU-5351
- Java堆和栈
- GraphX 图数据建模和存储
- AdvanceInstaller打包安装及完成后调用 .bat文件方法
- 时间相关的js方法
- Skew Binary
- DevExpress v15.1:VCL控件功能增强(二)
- Construct Binary Tree from Preorder and Inorder Traversal
- Android launcher3常用的类
- android开发出现No Launcher activity found!解决方案
- GitHub 优秀的 Android 开源项目
- linux(mint)中codeblock的设置
- Heap Spray原理浅析
- python3.4学习笔记(二十六) Python 输出json到文件,让json.dumps输出中文 实例代码
- 30天,O2O速成攻略【8.15长沙站】
- git使用
- Android的Button控件的点击事件的四种写法
- Java,Android使用RSA 算法加解密