程序集版本最后一位使用SVN版本号的自动生成方法

 使用SVN进行源代码版本控制时,我们希望能够快速找到每个发布版本对应的源代码版本,现在可以通过在程序集的版本信息中增加SVN源码版本信息的方式来实现我们的要求。       现在我们定义每个程序集的版本信息的最末段表示SVN的源码版本。详细定义如下:程序集版本号分为4段,例如1.0.4.23。 第一段为主版本号,项目一但启动则不会更改。 第二段为次版本号,在项目功能做较大调整时增加,增量为1。 第三段为修订版本号,通常在解决缺陷或者细微功能变化时增加,增量为1或者2。该版本号分奇数和偶数两种。奇数表示测试版本,偶数表示稳定版本。 第四段为SVN源码版本号,该版本号通过脚本自动生成。      使用脚本自动生成SVN版本号的先决条件: 安装TortoiseSVN; 源代码在SVN版本管理控制之下。     修改项目设置,使之能够自动生成版本号: 修改Properties/AssemblyInfo.cs文件,将程序集版本信息的最末一段改为$WCREV$。并增加一行"//最后发布时间:$WCDATE$" 例如: [assembly: AssemblyVersion("1.1.0.$WCREV$")][assembly: AssemblyFileVersion("1.1.0.$WCREV$")] //最后发布时间:$WCDATE$ 将AssemblyInfo.cs文件重名为AssemblyInfo.tpl,并添加到源代码管理。 从源代码仓库中删除AssemblyInfo.cs,并排除它,使其不受版本管理。 添加本文中的GenerateAssemblyInfo.bat文件到Properties目录中,并添加到源代码管理。 修改项目属性,在生成事件的预生成事件命令行中添加以下命令。 "$(ProjectDir)/Properties/GenerateAssemblyInfo.bat" "$(ProjectDir)" ./Properties/AssemblyInfo.tpl ./Properties/AssemblyInfo.cs      注意: 在编译之前/u003c/strong/>记得提交你的更改和更新别人的更改,这样才能确保版本号的正确。/u003c/font/>/u003c/li/>/n/u003cli/>今后要对程序集信息进行修改时,请对AssemblyInfo.tpl文件进行修改。/u003c/li/>/n/u003cli/>如果生成的AssemblyInfo.cs文件出现中文乱码,打开AssemblyInfo.tpl,在/u003cstrong/>文件/u003c/strong/>->/u003cstrong/>高级保存选项/u003c/strong/>中将文件编码改为/u003cstrong/>UTF-8/u003c/strong/>即可。/u003cbr/>/u003c/li/>/u003c/ul/>/n/u003cp/>-- /u003cbr/>谢剑/u003cbr/>讯美电子研发部 /u003c/p/>/n",0] ); D(["ce"]); //--> 编译之前记得提交你的更改和更新别人的更改,这样才能确保版本号的正确。 今后要对程序集信息进行修改时,请对AssemblyInfo.tpl文件进行修改。 如果生成的AssemblyInfo.cs文件出现中文乱码,打开AssemblyInfo.tpl,在文件->高级保存选项中将文件编码改为UTF-8即可。      脚本 GenerateAssemblyInfo.batCode highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->::-----------------------------::** Initialize@ECHO OFFSETLOCAL ENABLEEXTENSIONSREM Initialize ConstantsSET TSVN_INFO_FILE=./TSVN_INFO.tmpREM Initialize script argumentsSET workDir=%1SET template=%2SET target=%3REM Goto main entryGOTO MAIN::=============================::-----------------------------::** Main entry:MAINpushd %workDir%SET workDir=./REM 检查参数IF %workDir%=="" GOTO ARGUMENT_ERRORIF %template%=="" GOTO ARGUMENT_ERRORIF %target%=="" GOTO ARGUMENT_ERRORREM 查询注册表reg query HKLM/SOFTWARE/TortoiseSVN /v Directory > %TSVN_INFO_FILE% 2>NULREM 查找 TSVN 路径FOR /F "tokens=*" %%i IN (%TSVN_INFO_FILE%) DO (  ECHO %%i | find "Directory" > NUL  IF %ERRORLEVEL% == 0 (    ECHO %%i > %TSVN_INFO_FILE%  ))SET /P TSVN_PATH= < %TSVN_INFO_FILE%SET TSVN_PATH=%TSVN_PATH:~17,-1%REM 调用 TSVN 替换模板IF NOT %ERRORLEVEL% == 0 GOTO UNKNOW_ERROR"%TSVN_PATH%bin/SubWCRev.exe" %workDir% %template% %target% >NULIF NOT %ERRORLEVEL% == 0 GOTO UNKNOW_ERRORGOTO SUCESSED::=============================::-----------------------------::** Error handlers:ARGUMENT_ERRORECHO 传入的参数无效。GOTO FAIL:NOT_FOUND_TSVNECHO 查询TortoiseSVN 的安装信息失败。GOTO FAIL:UNKNOW_ERRORECHO 生成程序集信息出现未知错误。:FAIL::=============================::-----------------------------::** Program exit:FAILDEL /Q %TSVN_INFO_FILE% 2>NULECHO 生成程序集信息失败。popdEXIT 1:SUCESSEDDEL /Q %TSVN_INFO_FILE% 2>NULECHO 生成程序集信息成功。popdEXIT 0::=============================
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值