java - 软件自动升级框架设计

查看:269
本文介绍了java - 软件自动升级框架设计的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

如何设计一个好的桌面软件更新框架?

现在软件目录是这样。

一堆DLL+一个EXE主程序

我目前更新设计是这样.
启动时候检查更新,如果需要更新,则下载文件到临时目录。但是如何覆盖? exe正在使用DLL。无法覆盖的。最好能保持只运行一次exe,要不然杀毒软件会提示正在调用可疑的exe。

解决方案

建议程序本身和控制程序升级的程序分开,也就是2个exe。
同时服务端发布一个清单列表,里面包含构成当前运行exe的各个组成部分的字节数及其MD5,以及版本,这样控制升级的exe可以通过检测清单列表里的内容来判定哪些部分需要更新(单独更新哪些dll还是程序整体)。程序启动的时候保证更新的程序同时也是启动的,其他的逻辑由控制程序来控制,当程序退出后不再锁定工作目录,更新程序完成更新。

更新程序如果本身也是有可能升级的,这种情况如果也有很大可能会出现,则可以在服务端也设置一个配置接口,在需要更新时,用浏览器跳转进行数据更新程序整体的安装包。

这样的话,假设程序本身为A, 负责更新的程序为update,角色关系如下
A的更新由update负责,update的跟新由浏览器下载负责

这篇关于java - 软件自动升级框架设计的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆