java - 软件自动升级框架设计
本文介绍了java - 软件自动升级框架设计的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
如何设计一个好的桌面软件更新框架?
现在软件目录是这样。
一堆DLL+一个EXE主程序
我目前更新设计是这样.
启动时候检查更新,如果需要更新,则下载文件到临时目录。但是如何覆盖? exe正在使用DLL。无法覆盖的。最好能保持只运行一次exe,要不然杀毒软件会提示正在调用可疑的exe。
解决方案
建议程序本身和控制程序升级的程序分开,也就是2个exe。
同时服务端发布一个清单列表,里面包含构成当前运行exe的各个组成部分的字节数及其MD5,以及版本,这样控制升级的exe可以通过检测清单列表里的内容来判定哪些部分需要更新(单独更新哪些dll还是程序整体)。程序启动的时候保证更新的程序同时也是启动的,其他的逻辑由控制程序来控制,当程序退出后不再锁定工作目录,更新程序完成更新。
更新程序如果本身也是有可能升级的,这种情况如果也有很大可能会出现,则可以在服务端也设置一个配置接口,在需要更新时,用浏览器跳转进行数据更新程序整体的安装包。
这样的话,假设程序本身为A, 负责更新的程序为update,角色关系如下
A的更新由update负责,update的跟新由浏览器下载负责
这篇关于java - 软件自动升级框架设计的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文