利用SVN的命令行工具+批处理文件生成一个手动的build系统

为了方便测试人员测试,和开发人员修改bug,我们需要建立一个自动的编译系统,并取存放编译结果的文件夹名称为SVN中对应的Revision号 (修订号),这样做测试的时候,我们可以明确知道是哪个修订版出了问题。

SVN命令行工具下载,地址:http://www.open.collab.net/downloads/subversion/ , 找到其中的

“CollabNet Subversion Command-Line Client”,该程序为SVN命令行工具的安装包。安装之后即可执行SVN命令行了,在命令行cmd里面输入"svn help"可以查看所有的子命令行。

利用SubWCRev .exe工具,关于该工具的介绍:

SubWCRev is Windows console program which can be used to read the status of a Subversion working copy and optionally perform keyword substitution in a template file. This is often used as part of the build process as a means of incorporating working copy information into the object you are building. Typically it might be used to include the revision number in an “About ” box.

,该工具的使用方法可以在TortoirseSVN的帮助文档中查看如下:

好了下面开始介绍自动编译系统的生产过程:

1.首先创建一个Assembly.cs文件的模板文件,取名为Assembly.cs.tpl,

典型的模板文件书写如下,里面包含一些SubWCRev命令支持的一些关键字:

//=========================Assembly.cs.tpl文 件=======================================

// 有关程序集的常规信息通过下列属性集
// 控制。更改这些属性值可修改
// 与程序集关联的信息。
[assembly: AssemblyTitle("iLocate UWB定位软件")]
[assembly: AssemblyDescription("iLocate UWB定位软件,代码时间:$WCDATE$ 编译时间:$WCNOW$")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("唐恩科技 Donn Technology")]
[assembly: AssemblyProduct("iLocate UWB定位软件")]
[assembly: AssemblyCopyright("常州唐恩软件科技有限公司 http://www.donetech.com.cn ")]
[assembly: AssemblyTrademark("Donn Technology")]
[assembly: AssemblyCulture("")]

// 将 ComVisible 设置为 false 使此程序集中的类型
// 对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型,
// 则将该类型上的 ComVisible 属性设置为 true。
[assembly: ComVisible(false)]

// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
[assembly: Guid("aabafd57-ccb1-4c44-a419-78890af1bede")]

// 程序集的版本信息由下面四个值组成:
//
//      主版本
//      次版本
//      内部版本号
//      修订号
//
[assembly: AssemblyVersion("1.0.0.$WCREV$")]
[assembly: AssemblyFileVersion("1.0.0.$WCREV$")]

//=========================end Assembly.cs.tpl文件====================================

文件中被$符号包含的就是SubWCRev支持的关键字,当中执行SubWCRev命令时,这些关键字将被替换成实际的值:版本号,代码时间等。

2.SubWCRev 命令的使用

关于SubWCRev 命令的使用,用户可以在TortoiseSVN帮助文件中查看到。基本用法如下:

SubWCRev WorkingCopyPath [SrcVersionFile DstVersionFile]

3.下面附上2个批处理文件,解释自动编译系统的过程:

1).rebuild.bat批处理文件,核心代码如下(“//”为带注释部分,不可以运行于bat文件中):

svn update “iLocate UWB定位软件”     //使用命令行svn update 更新代码库至最新版本
SubWcRev "../iLocate UWB定位软件" Build.bat.tpl Build.bat //运用SubWcRev 命令生成主编译批处理文件
"Build.bat"   //执行自动编译
del "Build.bat" //删除中间结果文件

 

2).自动编译批处理文件:build.bat

rmdir /Q /S temp //删除存放上一个版本项目文件的目录

svn export "../iLocate UWB定位软件" temp //导出最新的项目文件到temp目录

//执行SubWcRev 进行某些本版本的关键字的替换Assembly.cs文件
SubWcRev "../iLocate UWB定位软件" "temp/iLocate UWB定位软件/Properties/AssemblyInfo.cs.tpl"    "temp/iLocate UWB定位软件/Properties/AssemblyInfo.cs"

//在build文件夹中创建以修订号为目录名的文件夹
mkdir build/$WCREV$

//调用devenv.exe(VS的编译程序)来达到编译的目的,并把编译结果输出到BuildLog.txt
"C:/Program Files/Microsoft Visual Studio 8/Common7/IDE/devenv.exe" /ReBuild Release temp/iLocateEngine.sln /OUT build/$WCREV$/BuildLog.txt

//把编译结果拷贝到build目录下的对应修订号的文件夹中。
xcopy /E /Y temp/Setup/Release build/$WCREV$

好了,2个批处理文件顺利执行之后,那么就可以在build目录的对应修订号的文件夹下看到最新的编译结果了

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值