一、设计思路:
1、升级程序和主程序分开,每次先启动主程序,在主程序中点击升级,退出主程序,启动升级程序,由升级程序来检测是否有新版本需要升级;(考虑是否要在,检测到有新版本后再退出主程序)
2、如果有更新的话,则由升级程序将服务器上的更新文件下载回本地,如果升级程序自身也有更新的话,则把新的升级程序重命名下载保存在本地;
3、所有更新文件下载完毕或者没有新版本的话,升级程序启动主程序,同时退出自身;
4、主程序启动后,首先检查是否有重命名的新的升级程序,如果有的话,则用该文件覆盖老的升级程序。
二、关于升级程序如何判断是否有新版本。
升级程序启动后首先进行拨号连接,拨号成功后检测是否能正常访问升级服务器上的版本文件,如果可以的话,将通过服务器上查询到的版本号和本地机器的软件版本号比较。如果联网失败的话,直接启动主程序,然后退出自身。
三、在实现基本功能的基础上考虑如下问题:
1、 做出公用的升级模块,提高易用和可配置性。
2、 考虑安全,不是合法用户不于升级。
3、 提供对新版本的描述信息,在检测的时候,如有新版本则把新版本相关信息告诉客户,让客户决策是否升级
4、 是否提供下载除安装包之外的文件?
5、 使用异步下载升级文件,并用滚动条显示当前下载进度
6、 把升级文件压缩
四、完善和优化
1、考虑用断点续传加异步下载升级文件
2、提供一个易于操作的升级文件管理和配置文件修改的程序(考虑用b/s程序)
http://www.cnblogs.com/wt0731/archive/2008/11/12/1332165.html
参考:comiunknown http://topic.csdn.net/u/20080903/11/D99F3A20-8664-43AB-A938-D93255D112EE.html
园子里有关升级的文章:
http://www.cnblogs.com/medal/archive/2008/08/21/1273348.html
http://www.cnblogs.com/iyond/archive/2007/06/14/783301.html
http://www.cnblogs.com/onekey/archive/2008/09/19/1293946.html
http://www.cnblogs.com/torome/articles/290640.html
http://www.cnblogs.com/jenry/archive/2006/08/15/477302.aspx
http://www.cnblogs.com/weck0736/archive/2007/12/25/1013748.html