windows应用版本管理

举报
风中的叶子 发表于 2020/03/16 15:08:36 2020/03/16
【摘要】 介绍windows应用程序版本号通用管理方法及一种简单的内部版本号维护手段。

windows应用软件的版本管理可以通过外部公开版本号和内部版本号共同管理。

外部公开版本号一般3段:V aa.bb.cc

aa为架构版本,bb为特性版本,cc为补丁版本。架构版本指的是整个软件架构上发生根本性改变,一般不支持平滑升级(当然,也可以专门做升级适配)。特性版本指的是同一个架构下,不同特性功能集合的版本。一般是增量开发,所以特性版本越高支持的功能也就越多。补丁版本指的是在特性功能集合已经确定的基础上,版本在使用过程中发现问题或者优化修改的补丁升级,补丁版本号越大,说明版本越稳定。


内部版本号通用的方法是采用SVN等代码管理工具的上传标签序号,这样递增过程很明显,可以通过打包脚本自动获取,减少人为设置时出现错误的可能。维护过程中分析问题时直接根据内部版本号就可以获取到对应代码,保证代码和软件的一致性。


最近在做一个新产品的原型开发,要不断提供临时安装包给测试人员,为了保证测试人员安装的测试包是最新的,先是给安装包文件名后面加了个打包事件序列数字,如:setup2020031318.msi。这样就可以避免旧版本问题重复定位。但每次打包还要专门修改文件名也比较麻烦,后来想了想,可以在软件中自己获取文件编译时间作为内部版本号,这样就可以让测试人员确定自己用的是不是新的安装包。


代码如下:


        public const String VER_CLIENT_SOFTWARE = @"V 1.0.0";


        public static String GetClientSoftwareVersion()

        {

            var main = ConstData.VER_CLIENT_SOFTWARE;

            var time = File.GetLastWriteTime(Process.GetCurrentProcess().MainModule.FileName);

            var inner = String.Format("{0:yyyyMMddHH}", time);


            return main + "(" + inner + ")";

        }


        private void menuAbout_Click(object sender, EventArgs e)

        {

            MessageBox.Show($"客户端版本: {GlobalData.GetClientSoftwareVersion()}", "关于");

        }


这种内部版本号可以解决在没有规范的SVN和打包脚本场景下的临时内部包管理。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。