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