NSIS:应用软件自动升级功能的探索与实践

轻狂以前曾分享过使用第三方软件实现应用软件自动升级功能,详细http://www.flighty.cn/html/soft/20110106_108.html。

但那个QUpdater毕竟不是自己写的,用起来不怎么放心,关键是其开发者对程序进行了各种限制。

现在,轻狂用NSIS来实现软件自动升级功能,有兴趣的同学可以共同探讨。

本文为原创文章,转载请注明出处和链接!(鄙视一下COPY帝……)

实现过程:

1、搭建一个HTTP环境,放置升级安装包文件(少轻狂.exe,关于这个升级安装包怎么写,请参考NSIS:制作软件升级安装包http://www.flighty.cn/html/bushu/20100208_20.html)和版本记录文件(up.txt,其中记录了版本号和少轻狂.exe的MD5值);或者把升级安装包文件文件和版本记录文件放在互联网空间中,只要在浏览器中键入地址能够直接下载即可。

2、运行本地机器中用NSIS写的up.exe,自动根据升级服务器配置文件(upserver.txt)中指定的服务器地址(这个地址可以自行更改以便更广泛的适用)下载版本记录文件(up.txt)到本地,将up.txt中的版本(或MD5)与本地机器中软件的版本(或MD5)进行比对,不一致则自动下载少轻狂.exe,下载完成后将up.txt中记录的MD5值与下载到的少轻狂.exe的MD5值进行比对,如果一致则自动运行升级,否则删除少轻狂.exe以免运行了错误的安装包。

实现图示:

演示程序与上述实现过程稍有区别,请注意。不过整体思路是一致的。

下载配置文件失败的提示

演示程序为了方便查看是否已经升级,先打开旧文件(实际应用中因为需要静默运行,故无此步骤,此为演示截图。)

比对软件MD5(实际应用中因为需要静默运行,故不会显示此消息,此为演示截图。)

升级完成提示

打开新版本文件

至此整个升级过程完成。

如果再次运行升级程序会提示无需升级了(实际应用中因为需要静默运行,故不会显示此消息,此为演示截图。)

应用扩展:

客户网络环境如下:有N个分店,每个分店的服务器可以连接互联网,但基于安全和维护方面的考虑,限制了分店客户端连接互联网。

根据此环境,扩展如下:各个分店服务器的down.exe从源升级服务器(或者网站)判断是否有更新,如果有则将升级文件下载到分店服务器的HTTP环境中,分店客户端的up.exe从分店服务器判断是否有更新,如果有则下载到客户端机器进行更新。

这样做的好处:

1、有效减轻源升级服务器(或者网站)下载压力,节省带宽。

2、由于分店客户端的升级是在局域网内进行,下载速度会非常快,而且大大减少文件下载失败或下载的文件MD5不一致的问题。

付费定制:

此源码出售(提供升级程序up.exe的源码、自动下载升级文件到HTTP环境down.exe的源码、HTTP环境搭建程序安装包、简单使用说明文件)

也可以根据要求进行一定的付费定制(付费定制不提供源码,只提供编译好的程序)

有意者请与我联系softsetup#qq.com(把#换成@)

(0)

相关推荐

  • 智能手机为什么存储越来越大,但还是不够用?

    现在的智能手机功能越来越多,内存也越来越大,随之增加的还是智能手机的机身存储.从早期的512MB.1GB.2GB,经过多年的发展,如今的机身存储空间大多都是达到256GB和512GB才能算是标配,但还 ...

  • 干货!电视内置应用安装包可以提取了

    有很多用户来问,电视内置的直播软件很好用想把包提取出来安装到其他电视上用,要怎么提取?小编试了下,用es文件管理器,但是需要内置应用有版本升级才行,下面示范具体的提取步骤和注意事项: 1.电视/盒子先 ...

  • ​国家新规:未经审批不得通过软件升级新增或更新自动驾驶功能

    8月12日,工业和信息化部发布<关于加强智能网联汽车生产企业及产品准入管理的意见>,要求加强汽车数据安全.网络安全.软件升级.功能安全和预期功能安全管理,保证产品质量和生产一致性,推动智能 ...

  • 大众迈腾更换ABS泵后,自动泊车功能失效解决办法

    故障现象:大众迈腾B7L,自动泊车不起作用,找到车位挂上R档自动泊车就会自动结束,试车如客户所述自动泊车系统可以正常打开,然后自动寻找车位但是找到车位挂入R档后系统就自动结束泊车(如下图所示) 故障诊 ...

  • 最好不要依赖编译器的内存自动初始化功能

    一个安全漏洞来源 读取未初始化的内存是C和C++程序中的一个主要安全漏洞来源.微软已经开发了很多工具来寻找这样的错误,包括编译器警告,静态分析检查,以及最近开发出来的:代码仪表(Code Instru ...

  • 我们体验了火爆的华为自动驾驶功能,感觉它像个开车“新手”

    如果不是实际乘坐了北汽极狐ARCFOX与华为联手打造的这台阿尔法 S 华为HI版,我很难想象,在现在这个阶段能够体验到一台真实的相当于L4级别的自动驾驶汽车. 当然,华为智能驾驶总裁苏箐对此有一个更加 ...

  • 希迪智驾:2025年20-30%的高速物流重卡将具备L4级自动驾驶功能

    近年来,随着物流运输的蓬勃发展,卡车司机驾驶在高速上的时间变得越来越长,而面临的交通致死率高.疲劳驾驶.里程高,油耗高也成为行业的痛点.除此之外,对行驶安全性及运输效率也产生了新的需求,不仅对车的智能 ...

  • 具有自动刷新功能的实时访客计数器

    我(和我们)的目标是构建一个无需用户干预即可自动刷新的组件(访问者计数器,放置在一个或多个网页中). 可以使用您喜欢的服务器端技术,例如ASP.NET或PHP,但是,对于本文,我将使用Javascri ...

  • MO.Life助WEY摩卡智能升级 仙豆智能探索“场景定义汽车”

    2021上海车展虽已接近尾声,但被智能汽车吸引前来的观众仍络绎不绝.其中,正式开启预售的WEY品牌旗下全新旗舰SUV摩卡,作为首款率先应用"咖啡智能"的车型,凭借优质的智能化功能体 ...

  • Excel超酷的到期自动提醒功能,96%的人没用过!

    点击下方 ↓ 关注,每天免费看Excel专业教程 置顶公众号或设为星标 ↑ 才能每天及时收到推送 个人微信号 | (ID:LiRuiExcel520) 微信服务号 | 跟李锐学Excel(ID:LiR ...

  • 如何设置word的自动保存功能

    在使用word文档编辑文档的时候,如果遇到电脑突然断电或者系统死机等情况,如果忘记保存,则有可能造成大量已完成的工作的丢失.因此笔者强烈建议word软件的使用者在使用之前一定要设置软件的自动保存功能, ...