`

CAutoupdater通用自动升级组件源码

阅读更多

CAutoupdater通用自动升级组件

 

1CAutoupdater通用自动升级组件介绍

1.1、组件介绍

C/S构的特点是能充分发挥客户端的处理能力,很多工作可以由客户端处理后再提交给服务器,对应的优点就是客户端响应速度快模式客户端以其强大的功能,丰富的表现力受到相当大部分用户的青睐,但是客户端布署,维护升级的成本却是非常的高的。

C/S客户端需要安装专用的客户端软件及运行环境。首先涉及到安装的工作量,其次任何一台电脑出问题,如病毒、硬件损坏,都需要进行安装或维护。特别是有很多分部或专卖店的情况,不是工作量的问题,而是路程的问题。还有,系统软件升级时,每一台客户机需要重新安装,其维护和升级成本非常高。

CAutoupdater组件就是为了解决C/S在维护升级方面的问题而存在的,本组件可以快速建立升级部署应用,完全控制整个升级部署过程,全功能的、快速、易于使用,设立发布你的客户端应用。

本组件以最简单的模式提供给客户端在线布署和自动升级功能,彻底解决升级部署方面的后顾之忧。组件中提供的的接口以最简单的方式来对升级过程提供完全控制。CAutoupdater组件为你的软件集成稳定/高效的自动升级功能,是本升级组件的宗旨。

CAutoupdater组件四步完成升级工作:检查新版本、下载到临时目录、检查本地文件、拷贝到工作目录。

无需特被的服务器,传统的Web服务即可,如IIS等。服务器部署最新版的软件文件(文件列表保存在一个XML文件中),CAutoupdater组件对比分析服务器和客户端的XML对比配置文件,不同就更新。

CAutoupdater组件采用C#语言编写,可应用于目前大多流行语言开发的软件之中,不依赖任何类库,稳定,高效。

2.2CAutoupdater组件升级原理及过程。

2.2.1CAutoupdater组件工作原理。

2.1.1.1不必关心当前使用的版本

 

2.1.1.2对比分析服务端与客户端使用的软件版本

2.2.2、服务端部署。

要使用CAutoupdater组件必须部署服务端,服务端的部署很简单,在这儿我们选择传统的IIS进行部署。假设我们升级的相关文件放在服务端的DCAutoupdater文件夹下,打开IIS,新建一个网站,将其物理路径指向:D:\CAutoupdater,具体IIS的配置可参考相关文章,在这儿不再介绍。在这儿重点介绍服务端AutoupdateService.xml文件。

2.2.1AutoupdateService.xml文件

通过AutoupdateService.xml文件可以看到,目前我们新增了一个待更新的文件RDIFramework.NET.exe,其版本号通过lastver配置项提供,文件大小通过size配置项提供,还有一个配置项needRestart,是否需要重启应用程序,意思是说,更新本文件后,主程序是否需要重新启动。url配置项就是待更新文件实际的服务端地址,客户端通过这个地址来下载这个文件。

客户端是如何判断当前是否需要更新呢?这儿主要是通过lastver(最新的版本号)与size(文件大小)来判断,两者只要取其一即可,在CAutoupdater组件中是两者同时取,只要客户端对应文件与服务端对应文件的最新版本号或文件大小不一样,则更新。下面我们来看一下如何自动生成服务端的配置文件(AutoupdateService.xml),如下图所示:

2.2.2.1CAutoupdater服务端配置

在图2.2.2.1中,配置文件的名称默认不允许修改,服务端地址就是我们配置IIS时的URL地址,在我的这个实例中是:http://localhost:8010/,服务端目录就是IIS对应URL地址所在的物理地址,在我的实例中是:D:\CAutoupdater,在界面下方的文件列表中,我们可以添加需要更新的文件,对于选择错误的文件,也可以对其选中后移除,可以看到文件列表的第一列为“重启?”,如果选中,则表示客户端升级后,需要重启客户端主程序,以完成更新,这需要根据实际的项目要求做相应的设置,没有定论。单击“生成”按钮,即可自动生成服务端的配置文件AutoupdateService.xml,同时把文件列表中的文件拷贝到指定的“服务端目录”中去。这样,就完成了服务端的配置。

同时需要说明的时,同时要修改CAutoUpdater项目文件中的“Autoupdater.config”文件,此文件实例设置如下:

<?xml version="1.0" encoding="utf-8"?>
<Config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Enabled>true</Enabled>
 <ServerUrl>http://localhost:8010/AutoupdateService.xml</ServerUrl>
</Config>

其中的:http://localhost:8010/AutoupdateService.xml就是升级服务器上升级配置文件的URL地址。在客户端中也要包含这个文件,以让客户可以通过这个文件中配置的升级服务器的地址,找到待升级的文件。

2.3、客户端部署。

客户端的配置非常简单,只需引用“AutoUpdater.dll”文件,然后在需要的位置(一般是在程序启动时检查更新,也可让用户手动检查更新),我一般都是在程序启动时(在Program.cs文件的Main函数中)检查待更新的文件,参考代码为:

          #region check and download new version program
            bool bHasError = false;
            IAutoUpdater autoUpdater = new AutoUpdater();
            try
            {
                 autoUpdater.Update();
            }
            catch (WebException ex)
            {
                LogHelper.WriteException(ex);
                MessageBoxHelper.ShowErrorMsg("连接自动升级服务器出错,请检查网络连接或联系软件提供商。");
                bHasError = true;
            }
            catch (XmlException ex)
            {
                LogHelper.WriteException(ex);
                bHasError = true;
                MessageBoxHelper.ShowErrorMsg("AutoUpdate Error:Download the upgrade file error");
            }
            catch (NotSupportedException ex)
            {
                LogHelper.WriteException(ex);
                bHasError = true;
                MessageBoxHelper.ShowErrorMsg("AutoUpdate Error:Upgrade address configuration error");
            }
            catch (ArgumentException ex)
            {
                LogHelper.WriteException(ex);
                bHasError = true;
                MessageBoxHelper.ShowErrorMsg("AutoUpdate Error:Download the upgrade file error");
            }
            catch (Exception ex)
            {
                LogHelper.WriteException(ex);
                bHasError = true;
                MessageBoxHelper.ShowErrorMsg("AutoUpdate Error:An error occurred during the upgrade process");
            }
            finally
            {
                if (bHasError == true)
                {
                    try
                    {
                        autoUpdater.RollBack();
                    }
                    catch (Exception ex)
                    {
                        LogHelper.WriteException(ex);                     
                    }
                }
            }
            #endregion

客户端启动时,检查若有升级,就会弹出下面的窗口。

 

作者: EricHu
出处: http://blog.csdn.net/chinahuyong
微博: 腾讯
Email: umplatform@126.com或 406590790@qq.com
QQ 交流:406590790 
平台博客: 【CSDN】http://blog.csdn.net/chinahuyong
         【CNBLOGS】http://www.cnblogs.com/huyong
关于作者:高级工程师、信息系统项目管理师、DBA。专注于微软平台项目架构、管理和企业解决方案,多年项目开发与管理经验,曾多次组织并开发多个大型项目,精通DotNet,DB(SqlServer、Oracle等)技术。熟悉Java、Delhpi及Linux操作系统,有扎实的网络知识。在面向对象、面向服务以及数据库领域有一定的造诣。现从事DB管理与开发、WinForm、WCF、WebService、网页数据抓取以及ASP.NET等项目管理、开发、架构等工作。
如有问题或建议,请多多赐教!
本文版权归作者和CNBLOGS博客共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,如有问题,可以通过邮箱或QQ 联系我,非常感谢。

分享到:
评论

相关推荐

    delphi自动升级源码

    Delphi 自动升级源码就是用于实现这一功能的代码,它允许程序在运行时检查并下载最新的程序版本,然后自动完成安装过程。 自动升级系统通常包含以下几个关键部分: 1. **服务器端**:这是存储最新版本软件和更新...

    uview组件源码,含样式

    uview组件源码,含样式

    OAuth2通用组件升级源码20121211

    OAuth2通用组件升级源码 功能介绍: OAuth2.0同时提供Web,桌面和移动应用程序的支持,并较1.0相比整个 授权验证流程更简单更安全。也是新浪微博开放平台未来最主要的用户身份验证和授权方式。 升级内容: 1:引入...

    VB源码自动升级程序

    VB源码自动升级程序是一种用于更新应用程序的自动化工具,它主要设计用于VB(Visual Basic)开发的应用程序。VB是微软公司推出的一种可视化编程语言,它以其直观易用的界面和强大的编程能力深受开发者喜爱。然而,...

    易语言源码程序自动升级易语言源码例程.rar

    易语言源码程序自动升级易语言源码例程.rar 易语言源码程序自动升级易语言源码例程.rar 易语言源码程序自动升级易语言源码例程.rar 易语言源码程序自动升级易语言源码例程.rar 易语言源码程序自动升级易语言源码...

    Delphi文件版本比较自动升级源码

    "Delphi文件版本比较自动升级源码"是针对这种情况设计的一套解决方案,它允许开发者轻松地集成到自己的Delphi应用程序中,实现自动化、智能化的版本更新检查和下载安装。 Delphi是一款强大的Windows应用程序开发...

    微信小程序 用户反馈组件 (源码)

    微信小程序 用户反馈组件 (源码)微信小程序 用户反馈组件 (源码)微信小程序 用户反馈组件 (源码)微信小程序 用户反馈组件 (源码)微信小程序 用户反馈组件 (源码)微信小程序 用户反馈组件 (源码)微信小程序 用户反馈...

    PB自动升级源码,数据库+http取文件升级

    在这个自动升级方案中,PB被用来编写客户端的升级组件,该组件能够与数据库交互,读取升级的相关信息。 1. **数据库取参数**:升级过程中,系统会从预先配置好的数据库中获取必要的升级信息,如新版本号、升级包URL...

    通用自动更新程序(源码)

    本项目名为"通用自动更新程序(源码)",主要使用C#编程语言,并结合WinForm界面设计,为用户提供了一种简单易用的方式来实现程序的自动更新。 首先,C#是一种面向对象的编程语言,由微软公司开发,广泛应用于...

    通用简易数据访问组件源码 GeneralEasyData.rar

    通用简易数据访问组件源码 源码描述: 一、源码特点 通用简易数据访问组件 Gem.Data,非ORM,无需配置,直接编写SQL语句操作数据。支持多种数据库 Access、MySql、SqlServer 等。 二、注意事项 开发环境为Visual ...

    小程序源码 电商通用 (商城demo源码) (代码源)

    小程序源码 电商通用 (商城demo源码) (代码源)小程序源码 电商通用 (商城demo源码) (代码源)小程序源码 电商通用 (商城demo源码) (代码源)小程序源码 电商通用 (商城demo源码) (代码源)小程序源码 电商通用 (商城...

    易语言 自动升级源码

    易语言 自动升级源码 加点好还会有 !

    易语言源码易语言通用答题提示器源码.rar

    易语言源码易语言通用答题提示器源码.rar

    易语言自动在线更新源码

    自动在线更新是软件维护和升级的重要机制,它允许用户在不离开应用程序的情况下检查并下载最新的程序版本。这种功能在现代软件开发中非常常见,因为它提高了用户体验,确保用户始终使用的是最新、最安全的软件版本。...

    通用自动更新源码20130322

    通用自动更新源码 功能介绍: 一个用于自动更新主程序的辅助小工具,通过本地配置更新信息实现自动更新 UpdateApp.exe使用说明: 1.在服务器上配置好更新的xml,以及对应需要更新的文件 2.在本地UpdateSet.xml中...

    基于PHP和高德开放平台的天气信息组件源码+使用说明.tar

    基于PHP和高德开放平台的天气信息组件源码+使用说明.tar基于PHP和高德开放平台的天气信息组件源码+使用说明.tar基于PHP和高德开放平台的天气信息组件源码+使用说明.tar基于PHP和高德开放平台的天气信息组件源码+使用...

    CPU利用率组件源码

    CPU利用率组件源码CPU利用率组件源码CPU利用率组件源码CPU利用率组件源码CPU利用率组件源码CPU利用率组件源码CPU利用率组件源码CPU利用率组件源码CPU利用率组件源码CPU利用率组件源码CPU利用率组件源码

    易语言根据名称找组件源码.rar

    易语言根据名称找组件源码.rar 易语言根据名称找组件源码.rar 易语言根据名称找组件源码.rar 易语言根据名称找组件源码.rar 易语言根据名称找组件源码.rar 易语言根据名称找组件源码.rar

    自动升级程序 delphi 源码

    自动升级程序 delphi 源码 自动升级程序 升级后自动更新软件源码

Global site tag (gtag.js) - Google Analytics