首页 > 代码库 > VC自动生成软件版本号

VC自动生成软件版本号

 VC自动生成软件版本号

 

flyfish

目的:

软件的版本有主版本号.子版本号.修正版本号.编译版本号

其中编译版本号与SVN服务器的版本号(Revision)自动同步。

 

 

环境

需要在本机安装TortoiseSVN

 

第一步

在项目的.rc文件中搜索VS_VERSION_INFO VERSIONINFO

按照下面例子更改

 

#ifdef _AUTO_INCREMENT_VERSION
         FILEVERSION2,0,4,$WCREV$
         PRODUCTVERSION2,0,4,$WCREV$
#else
         FILEVERSION2,0,4,1
         PRODUCTVERSION2,0,4,1
#endif
 
#ifdef _AUTO_INCREMENT_VERSION
         VALUE"FileVersion", "2.0.4.$WCREV$"
         VALUE"ProductVersion", "2, 0, 4, $WCREV$"
#else
         VALUE"FileVersion", "2.0.4.1"
         VALUE"ProductVersion", "2, 0, 4, 1"
#endif


 

如果不写条件编译命令 #ifdef,#else,#endif 直接更改2,0,4,$WCREV$。VC的资源视图无法解析 $WCREV$。

undefined keyword or key name: $WCREV$

 

第二步

VC环境设置 项目属性-》生成事件-》预先生成事件 命令行

拷贝如下两行

C:\ProgramFiles\TortoiseSVN\bin\subwcrev.exe $(SolutionDir)$(ProjectDir)$(ProjectName).rc $(ProjectDir)$(ProjectName).rc_
rc.exe /fo$(ProjectDir)$(IntDir)$(ProjectName).res /d _AUTO_INCREMENT_VERSION /d _AFXDLL$(ProjectName).rc_


 

C:\ProgramFiles\TortoiseSVN\bin\subwcrev.exe 更改你自己的TortoiseSVN安装路径

 

 

工具1:SubWCRev.exe

SubWCRev.exe是TortoiseSVN自带的工具,通过TortoiseSVN\bin目录下的SubWCRev.exe命令行工具

读取服务器的Revision修正版本号

在模版中执行关键字替换,达到修改同步本地版本号的目的。

 

命令行参数

SubWCRev WorkingCopyPath [SrcVersionFileDstVersionFile] [-nmdfe]

 

工具2:rc.exe

rc.exe是VC自带的资源编译器ResourceCompiler 。

 

命令行参数

RC [options] script-file

options是编译选项,script-file是编译的脚本文件

 

fo 创建res文件名称

d 为预处理器(preprocessor)定义符号

_AFXDLL 表示在共享DLL中使用MFC

 

宏说明

$(SolutionDir)  解决方案的目录(定义为驱动器 + 路径);包括尾部的反斜杠“\”。

$(ProjectDir)    项目的目录(定义为驱动器 + 路径);包括尾部的反斜杠“\”。

$(ProjectName)        项目的基本名称。

$(IntDir)   为中间文件指定的相对于项目目录的目录路径。它解析为“中间目录”属性的值。

 

参考链接

Using RC (The RC Command Line)

生成命令和属性的宏

The SubWCRev Command Line


 

VC自动生成软件版本号