环境:Windows / MS VC++
SVN是当前比较流行的版本控制软件,下面主要介绍通过SVN在程序编译时自动生成版本号。
基本思想:利用SubWCRev.exe获取版本信息,读入屏幕流,生成包括版本号信息的“.H文件”,并修改“.rc资源文件”中的版本信息,“.H文件”主要用于关于框中的版本显示,简单格式如下:
#ifndef __SVN_VERSION_MAX
#define __SVN_VERSION_MAX XXX
#endif
用下面附录的源码编译SVNVersionGen.exe
使用说明:
建立一个批处理文件
setlocal
设置TortoiseSVN安装目录set SVN_PATH=D:/Program Files/TortoiseSVN/bin
设置解决方案目录
set WORK_DIR=e:/My Documents/Visual Studio Projects/XXX
设置版本号,前三位
set VERSION_M="1,X,X"
set VERSION_S="1, X, X"
SVNVersionGen -HEADER "%SVN_PATH%" "%WORK_DIR%" "SVNVersion.h"
设置子项目名称
set PRO1_NAME=PROJECT1
SVNVersionGen -RESVERSION "%SVN_PATH%" "%WORK_DIR%/%PRO1_NAME%" "%WORK_DIR%/%PRO1_NAME%/%PRO1_NAME%.rc" %VERSION_M% %VERSION_S%
设置子项目2名称
set PRO1_NAME=PROJECT2
SVNVersionGen -RESVERSION "%SVN_PATH%" "%WORK_DIR%/%PRO1_NAME%" "%WORK_DIR%/%PRO1_NAME%/%PRO1_NAME%.rc" %VERSION_M% %VERSION_S%
endlocal
源码:
// SVNVersionGen.cpp
#include "stdafx.h"
#include<string>
#include<windows.h>
#include<iostream&