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和打包脚本场景下的临时内部包管理。
- 点赞
- 收藏
- 关注作者
评论(0)