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.1 AutoupdateService.xml文件

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

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

2.2.2.1 CAutoupdater服务端配置

在图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"?>
<Configxmlns: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 programbool bHasError = false;IAutoUpdater autoUpdater= newAutoUpdater();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

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

posted on 2013-01-17 16:18 yonghu86 阅读(...) 评论(...)  编辑 收藏

转载于:https://www.cnblogs.com/huyong/articles/2864728.html

CAutoupdater通用 自动升级组件用户手册相关推荐

  1. CAutoupdater通用自动升级组件

     CAutoupdater通用自动升级组件 1.CAutoupdater通用自动升级组件介绍 1.1.组件介绍 C/S构的特点是能充分发挥客户端的处理能力,很多工作可以由客户端处理后再提交给服务器,对 ...

  2. WPF开发一款软件自动升级组件

    前几天介绍了WPF进行自定义窗口的开发,关注的朋友还挺多,超出本人意料,呵呵,那么我就再接再励,在上篇的基础上,讲述一下软件自动升级组件的开发原理,大家时间宝贵,不想搞太长的篇幅,所以尽可能拣重要的说 ...

  3. 自动升级失败,缺少System.resources.dll?

    原本认为很简单的自动升级组件,却着实让我费了不少时间. 到现在还没明白为何出这个错误. 缺少System.resources.dll 还以为是Lacation的设置问题,来回改了几次True/Fals ...

  4. 利用Web Services实现软件自动升级

    摘 要:软件维护升级工作是软件生命周期最重要的环节.为了解决以往C/S(Client/Server)模式下的客户端软件升级效率低的问题,设计了C/S应用系统自动升级处理程序.该程序利用Web Serv ...

  5. [转载]利用Web Services实现软件自动升级

    [---  资料是从免费网站上获取的,上载在这里,只为交流学习目的,文章原作者保留所有权力, 如本博客的内容侵犯了你的权益,请与以下地址联系,本人获知后,马上删除.同时本人深表歉意,并致以崇高的谢意! ...

  6. 一起谈.NET技术,自动更新组件分享

    一. 摘要 前两天在博客上发布了一篇英文的自动更新组件文章Release a AutoUpdater tool,那么在这篇文章中,我们也对其功能进行一些简单说明,这个组件非常简单,所以大家可以下载进行 ...

  7. 通用权限管理系统组件 中集成多个子系统的单点登录(网站入口方式)附源码

    通用权限管理系统组件 (GPM - General Permissions Manager) 中集成多个子系统的单点登录(网站入口方式)附源码 上文中实现了直接连接数据库的方式,通过配置文件,自定义的 ...

  8. 通用社区登陆组件技术分享(开源)下篇:OAuth 源码下载及原理解说

    原文http://www.cnblogs.com/cyq1162/archive/2012/11/07/2756848.html 上节内容: 1:通用社区登陆组件技术分享(开源)上篇:OAuth 授权 ...

  9. ASP网站程序自动升级实现的方法

    现在流行虚拟主机建站,我也有个网站,也算是个站长咯.当了近一年的站长,感到网站程序每次升级的时候颇为麻烦:先去官方看公告,然后下载升级包到本地,解压,FTP上传到虚拟主机.这些都是累人的体力活,加之本 ...

最新文章

  1. 比 GPT-3 更擅长理解用户意图,OpenAI发布 InstructGPT
  2. POJ3233不错的矩阵(矩阵套矩阵)
  3. node.js发送邮件
  4. linux重启memcache_Linux下的Memcache安装方法
  5. Python oct 函数 - Python零基础入门教程
  6. python爬微博粉丝最多的明星_2020明星微博粉丝排行榜,谁的粉丝数量最多呢
  7. Oracle 数据库升级
  8. Linux连接mysql 出现Access denied for user ‘root‘@‘localhost‘(using password: YES)错误解决方案
  9. module.exports,exports,export和export default,import与require区别与联系
  10. ffmpeg将文件转码后推向服务器,FFmpeg转码服务器搭建
  11. 超市扫码机器服务器系统搭建,超市用的扫码机是怎么个原理?
  12. matlab fspecial 位置,matlab fspecial 用法解释
  13. 后台得到ajax传来的参数,几种ajax传参数到后台获取的方法
  14. matlab三维重建中将灭点坐标反归一化,基于灭点查找的姿态角测量方法在路面三维重建中的应用...
  15. 建模实训报告总结_模型实训的心得体会
  16. codeforces 869c(组合数)
  17. 60分钟教你实现Chatbot(基于pytorch)
  18. 大数据下的90后事业画像
  19. 简单的二、八、十、十六进制转换
  20. 8个最受欢迎的移动跨平台开发引擎

热门文章

  1. 南京宝坚电子,招聘图像算法工程师
  2. CV卷得厉害,研究机器学习还能做什么?
  3. CVPR 2021 速览 | 旷视研究院入选学术成果盘点
  4. 天津大学推出大型无人机航拍车辆数据集DroneVehicle
  5. AI项目商务合作,寻广州附近计算机视觉算法团队!
  6. 深度学习超分辨率最新综述:一文道尽技术分类与效果评测
  7. 注意!Python开发中最容易掉进去的10个坑!你遇到过那些
  8. 3D建模如何学习,小白6个月入门工作?3D建模要学多久才能接外包私活?
  9. js添加关闭功能_微信小程序开发之添加夜间模式功能
  10. 一叶知秋:基于“单目标域样本”的领域自适应方法