c/s终端软件升级

制作一升级程序,根据自身条件来判断是不是需要升级。
思路:
一,检测网络配置
二,连接到升级服务器
三,启动升级程序 
      1. 检测自身升级 获取升级信息     
       2关闭特定的程序
      3下载升级
      4所有最新版本下载完成后,依次执行所有更新( 所谓的更新除了执行特殊程序外,包括复制程序和执行程序) 
四, 更新
1,从旧版本号XX 升级到新版本号XX
  
 当前进度 xx%
 总体进度 xx%
详细信息: 检查组件 下载组件 (组件名)  复制组件 (组件名)  更新组件 (组件名)

升级程序自身升级
1,区分升级自身文件和其它文件,通过存放目录,配置文件等式来进行
2,确定升级自身时是全部升级还是可以先升级一部分
3,备份原文件
4,把升级自身文件名称附加固定的后缀,升级到用户机器上
5,升级程序退出前,启动另一个程序A.EXE,它要完成的任务是先等待其它升级模块退出,再去掉升级自身文件名称中包含固定后缀的文件后缀
五,所有升级执行完毕时或出现异常时,运行特定程序
 
版本号:Windows 风格的版本号命名格式 :
主版本号 . 子版本号 [ 修正版本号 [. 编译版本号 ]]
Major_Version_Number.Minor_Version_Number[Revision_Number[.Build_Number]]
示例: 1.21, 2.0


详细说明:

用到三个表:

1.NetBank_updateVersion保存升级版本信息

ID,VERSION,DESCRIPTION,RunEXE

2.NetBank_updateTermList保存终端号的升级信息

ID,versionID,TermNO,Audit

3.NetBank_updateFileList保存下载文件的位置

ID,versionID,startDate,endDate,downloadURL,DestFolder,MD5,unCompress,CreateDate

检测升级:
1。得到终端号
2。根据终端号,查找终端升级表NetBank_updateTermList
3。查出所有己审核并且终端号相同的终端号升级记录
4。得到终端号升级记录后,遍历终端号升级记录,
       查找下载文件表NetBank_updateFileList,得到versionID相同并且大于开始日期,小于结束日期的下载文件表记录(执行此步时,删除结束日期小于终端日期的记录)
5。下载文件到应用程序当前文件夹下download\以版本号为文件夹名的文件夹中
6。同时,在download中新建立一个UPD.XML文件,记录下载文件的信息,包括:版本号,下载文件表的ID,文件名,目标路径,解压标志,格式:
     

7。更新
根据download下的upd.xml文件
遍历版本号
依次复制,解压每个下载文件到目的地,
更新成功后,删除NetBank_updateFileList表versionID=downID记录
删除upd.xml中指定版本号下downID=“xx"的这一节
 
8。当upd.xml中指定版本号节点下没有节点,删除版本号节点,NetBank_updateFileList也没有该版本的记录,则表示升级己彻底完成,删除NetBank_updateTermList该版本号并且终端号相同的记录,
执行NetBank_updateVersion中RUNEXE文件,删除该版本号的所有记录
请使用浏览器的分享功能分享到微信等