使用SVN-subwcrev命令 发布软件版本

使用SVN-subwcrev命令 发布软件版本
在软件开发过程中,每次对一个软件产品的release,都要处理该软件版本号。有的版本号是人为定的,有些是自动生成的,本文介绍在使用SVN版本管理软件的情况下,利用SVN的一个命令来自动生成对应svn修改版本的版本号。


下面使用visual studio (C#) 软件开发环境作为介绍,其它依葫芦画瓢。


如:我提交了一次代码修改,对应的svn revision是15849:





如果我要针对此次修改,release一个新的软件版本,对于版本号,一般是在Assembly.cs文件中进行修改:


[assembly: AssemblyVersion("2.2.13")][assembly: AssemblyFileVersion("2.2.13")][assembly: AssemblyCompany("xxx Technology")][assembly: AssemblyCopyright("Copyright © xxx 2009-2016")][assembly: AssemblyTrademark("")][assembly: AssemblyCulture("")]

如果我不想每次都手动来修改这里,可以使用上面的SVN命令,来自动生成Assembly.cs文件,每次都能将修改的revision自动写入到Assembly.cs,只需要:

1)新建一个GlobalAssembly.cs文件,写成:

[assembly: AssemblyVersion("2.2.13.$WCREV$")][assembly: AssemblyFileVersion("2.2.13.$WCREV$")][assembly: AssemblyCompany("xxx Technology")][assembly: AssemblyCopyright("Copyright © xxx 2009-2016")][assembly: AssemblyTrademark("")][assembly: AssemblyCulture("")]


2) 新建一个bat文件,写成(相对路径自己定义):

subwcrev . GlobalAssembly.cs Assembly.cs

3)然后把这两个文件一起放到svn working copy下,结束。


4)最后双击运行bat文件,就会自动生成我们需要的Assembly.cs文件,文件内容如下,只要在项目中引用这个文件就行了:

[assembly: AssemblyVersion("2.2.13.15849")][assembly: AssemblyFileVersion("2.2.13.15849")][assembly: AssemblyCompany("xxx Technology")][assembly: AssemblyCopyright("Copyright © xxx 2009-2016")][assembly: AssemblyTrademark("")][assembly: AssemblyCulture("")]

引用文件的时候注意 选择Add as link:




如果要在程序的【About】中显示版本号,可以按照下面的方式来获取:

public string Version{get{Assembly executingAssembly = Assembly.GetExecutingAssembly();object[] attrs = executingAssembly.GetCustomAttributes(typeof(AssemblyFileVersionAttribute), true);if (attrs.Length > 0){AssemblyFileVersionAttribute assemblyVersion = attrs[0] as AssemblyFileVersionAttribute;Version version = new Version(assemblyVersion.Version);return string.Format(Thread.CurrentThread.CurrentUICulture, LocalizingResources.DynamicUIData_AboutDialog_VersionDescription, version.Major, version.Minor, version.Build, version.Revision);}return "x.x.x.x";}}

免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部