简单实现在线更新系统

时间:2024-02-19 19:59:46
因工作需要,笔者需要做一个客户端产品的在线更新系统,在线更新谁都知道,但是一些具体的业务细节还是需要说明一下的。

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