自动升级工具实现小结

1.  功能介绍

网上有很多客户端自动升级工具,本例也结合了网上的升级工具方法。自动升级方式总结起来就那几种方式,通过版本号比对、更新日期比对 或其他随机码比对方式,比较客户端版本信息与服务器端版本信息是否一致,如果不一致,则下载服务器端更新包自动覆盖本地文件,下载文件的方式可以采用FTP,也可以采用Http等方式。

该工具实现了下面几个功能:

(1)   上传打包文件(Zip包)到服务器站点,生成最新的更新包文件

(2)   客户端运行软件,检测本地软件版本信息(更新日期)是否与服务器上的版本信息是否一致,如果不一致,从服务器上下载最新的更新包到本地

(3)   解压本地下载的最新更新包,并覆盖本地文件,实现文件的更新

(4)   更新完成,返回继续运行原程序

该工具的存在的一些不足: 打包文件建议将本地所有项目文件都打包,不要只打变更文件,否则有可能中间有几个更新包客户端未更新时,直接下载最新的更新包更新时,可能会由于缺少一些中间更新包的文件导致程序无法运行。

有兴趣的可以调整下实现中间更新包如果没有更新,依次下载未更新的包更新,直到最后一个更新包更新完成就可以了

其他说明: 如果要实现单个文件的升级管理,这与管理到升级包的原理是一样的,配置文件中记录每个文件的更新时间就可以了,然后与本地版本文件中的文件进行一一对比,逐个下载更新即可。

2.  项目结构及原理

2.1  项目结构

项目结构分为5个方案文件:

FG.MES.AutoUpdateNew :  自动更新的执行文件,实现版本信息检测,本从服务器站点下载版本,实现版本更新。

FG.MES.AutoUpdateUtil: 工具类,如解析XML,文件操作,解压文件等

FG.MES.UploadApp:上传更新包到服务器站点

FG.MES.UploadWeb: 配置的服务器站点,客户端自动更新文件通过访问该服务器站点下载更新包到本地

TestUpdateApp: 测试项目,测试自动更新效果

2.2  原理说明

3.  操作流程

3.1  配置上传的服务器Web站点(FG.MES.UploadWeb)

这里配置为http://127.0.0.1:9000,注意增加站点的文件读写权限

3.2  修改升级程序的站点地址为服务器Web地址

3.3  打包并上传到服务器

(1)   将项目文件打包为.Zip压缩包(此例中为TestUpdateApp中bin目录下的所有文件),本处只包含2个文件,打包为

(2)   修改上传项目中的系统配置文件,配置服务器站点,增加新项目节点(支持多项目升级)

(3)   通过上传工具” FG.MES.UploadApp”上传更新包

(4)   提示上传成功后,会在Web站点下多出一个目录,里面存放的是最新的更新包,以及项目的服务器版本文件(版本文件里存放的是当前最新的版本,更新包信息)

服务器版本文件SysVersion.xml(该文件为自动生成),内如如下

3.4 运行客户端程序检测升级

(1)   客户端程序应该包含升级文件,文件结构如

(2)   运行“TestUpdateApp.exe”,系统自动检测是否有版本变更

(3)   如果有版本变更,则下载升级,升级完成时,提示【升级成功】

说明: 这一步会生成"客户端版本文件",下次再升级就可以校验本地版本与服务器端版本是否一致,如果一致就不升级

(4)   退出再重新启动客户端程序后,系统检测到已经为最新版本(本地版本与服务器版本一致),就会跳过更新操作环节,直接运行程序

4.  工具的源代码

AutoUpdateSolution

5.  参考资料

http://blog.csdn.net/zhuweisky/article/details/38756617

http://www.cnblogs.com/wangiqngpei557/archive/2011/05/13/2045434.html

时间: 2024-10-12 19:07:53

自动升级工具实现小结的相关文章

实全软件产品自动升级管理解决方案

实全软件产品自动升级管理解决方案 目 录 1.    描述... 1 2.    产品管理后台系统... 1 2.1.     产品发布... 1 2.2.     产品下载... 2 2.3.     下载日志... 3 2.4.     异常日志... 3 3.    产品Web Service服务接口... 3 3.1.     接口说明... 4 4.    产品升级更新程序... 4 4.1.     产品升级自动更新工具... 5 4.2.     产品版本信息... 5 5.   

自动化升级工具之总体介绍

自动化升级工具主要是针对日常[开发环境]到[测试环境]再到[上线生产环境]的繁锁的操作,而研究的一款工具,他简化了开发人员在一次性部署好相关数据库服务.windows服务.站点服务后,再每一次版本升级时,所带来的一些固定而又机械的操作,希望此工具可以给一部分朋友来带来工作上的便捷,备注本版本工具只针对Windows环境. 准备条件: 第一.升级一台ftp服务器,用于上传相关升级包: 第二.服务器端[YBFLocalController]的服务,用于用于自动.备份.重启其他相关服务,在服务端配置好

SNFAutoupdater通用自动升级组件V2.0

1.组件介绍 C/S构的特点是能充分发挥客户端的处理能力,很多工作可以由客户端处理后再提交给服务器,对应的优点就是客户端响应速度快模式客户端以其强大的功能,丰富的表现力受到相当大部分用户的青睐,但是客户端布署,维护升级的成本却是非常的高的. C/S客户端需要安装专用的客户端软件及运行环境.首先涉及到安装的工作量,其次任何一台电脑出问题,如病毒.硬件损坏,都需要进行安装或维护.特别是有很多分部或专卖店的情况,不是工作量的问题,而是路程的问题.还有,系统软件升级时,每一台客户机需要重新安装,其维护和

自动升级系统的设计与实现(源码)

对于PC桌面应用程序而言,自动升级功能往往是必不可少的.而自动升级可以作为一个独立的C/S系统来开发,这样,就可以在不同的桌面应用中进行复用.基于ESFramework的文件传送功能,我实现了一个可直接复用的自动升级系统OAUS,现在将其分享给大家.这篇文章将着重介绍OAUS的相关背景.使用方法,至于详细的实现细节,大家可以直接下载源码研究.如果了解了OAUS的使用,源码的理解就非常容易了.如果需要直接部署使用自动升级系统,那么,可下载文末的可执行程序压缩包. 一.OAUS的主要功能 目前主流的

java CS结构软件自动升级的实现

前段时间做了一个工具发布给公司的各部门使用后反馈了不少BUG,每次修改后均需要发邮件通知各用户替换最新版本,很不方便,因此后来就写了一个自动升级的功能,这样每次发布新的版本时只需要将其部署到自动升级服务器上,工具使用用户运行工具时就会连接到自动升级服务器,检查是否有版本更新,如果有则完成更新后再运行最新版本,否则就运行当前工具版本. 为了使这个自动升级模块具有通用性,我将其做成可以单独运行的程序,而并非集成到工具中,这样则可以为各类软件提供自动升级的功能.自动升级模块采用SOCKET方式实现升级

AutoUpgrader.Pro.v4.6.4自动升级

to Delphi 7 ===========  1. Unzip files from "Delphi7" directory and copy them to "Delphi 7\Lib".  2. Start Delphi 7 IDE.  3. Open "AutoUpgraderProD7.dpk" file.  4. Install package to the components palette ("Install&quo

C# ActiveX 网页打包验证自动升级

原文地址:http://www.cnblogs.com/yilin/p/csharp-activex.html 注意事项:Win10下需要设置兼容模式,F12仿真切换到IE6-8(版本参考--BT9024: IE 中可以使用 classid 与 codebase 属性结合完成下载.安装和使用 ActiveX 插件)就可以正常工作了.如果还不行需要设置"Internet选项"启用下载未签名ActiveX控件,如下图: 验证效果: ActiveX控件以前也叫做OLE控件,它是微软IE支持的

IEBrowser IE升级工具 下载

下载地址:https://u18103887.ctfile.com/fs/18103887-349637884电脑安装的IE版本较低,可以使用IEBrowser IE升级工具 ,能自动检测出当前电脑安装的IE版本. 下载地址:https://u18103887.ctfile.com/fs/18103887-349637884 原文地址:https://www.cnblogs.com/xuanxuan2015/p/10585765.html

如果你想设置无人自动升级,我们推荐你将这个值修改为security,它会告诉 yum 仅仅升级修复安全问题的软件包。

定期升级你的 CentOS 系统,是所有系统安全中最重要的措施之一.如果你不使用最新的安全补丁升级你的操作系统软件包,你将会让你的机器很容易被攻击. 如果你管理者多个 CentOS 机器,手动升级系统软件包会很花时间.及时你管理一个简单的 CentOS,有时候安装时你也可能忽视一个重要的更新.这时候,自动更新就派上用场了. 在这篇指南中,我们将会一起看看在 CentOS 7 上配置自动更新.同样的指令适合 CentOS 6. 一.前提条件 在继续这篇指南之前,确保你以 sudo 用户身份登录系统