因工作需要,笔者需要做一个客户端产品的在线更新系统,在线更新谁都知道,但是一些具体的业务细节还是需要说明一下的。
一、在线更新的实现方式
1、在部署安装包的时候,添加一个配置文件,配置文件中包含了所有的dll、exe、文件夹、其他类型的文件以及文件夹;每次启动或者需要调用的时候,根据需要覆盖相应的文件即可。此种方式比较简单,有效,更新体量小,不涉及用户文件夹的修改但是对于已经成熟的,以前没有考虑更细系统的软件,切入进去确实有点难度,并且更新exe本身不能更新。
2、安装包和更新系统双向匹配。安装包需要达到覆盖、互斥、运行检测等一系列可以自动升级的动作;最好静默安装;用户数据文件和qq一样安装在C盘,实现运行和数据分离以防止被误删;主程序运行或者根据需要访问服务器,判断是否需要更新。
二、由于临时插入的需求,不才采用方式二。
1、利用NSIS写一个符合上述条件的安装程序;
2、更新接口的字段可以如下:
文件信息
a、upStamp: 上传的时间戳(用以判断版本,防止版本名判断错误等)
b、fileVersion: 文件版本信息
c、fileName : 文件名
d、url: 文件下载地址(真正文件下载的链接)
e、attach: 附加字段(可以添加新版本更新的内容等)
3、根据需求设置运行检测或按钮检测。