永发信息网

如何让客户端程序 自动更新 版本

答案:1  悬赏:10  手机版
解决时间 2021-04-16 21:21
如何让客户端程序 自动更新 版本
最佳答案
用C#实现软件自动更新思路
前言
长期以来,广大程序员为到底是使用Client/Server,还是使用Browser/Server结构争论不休,在这些争论当中,C/S结构的程序可维护性差,布置困难,升级不方便,维护成本高就是一个相当重要的因素。有很多企业用户就是因为这个原因而放弃使用C/S。然而当一个应用必须要使用C/S结构才能很好的实现其功能的时候,我们该如何解决客户端的部署与自动升级问题?部署很简单,只要点击安装程序即可,难的在于每当有新版本发布时,能够实现自动升级[3]。现在好了,我们的目标很简单,我们希望开发一个与具体应用无关的能够复用的自动升级系统。下面我为大家提供了一套可复用的用C#编写的自动升级系统。
2 实现软件的自动升级存在的困难
第一,为了查找远程服务器上的更新,应用程序必须有查询网络的途径,这需要网络编程、简单的应用程序与服务器通讯的协议。
第二是下载。下载看起来不需要考虑联网的问题,但要考虑下载用户请求的文件,以及在没有用户同意时下载大文件。友好的自动更新应用程序将使用剩余的带宽下载更新。这听起来简单,但却是一个技术难题,幸运的是已经有了解决方法。
第三个考虑因素是使用新版应用程序更换原应用程序的过程。这个问题比较有趣,因为它要求代码运行时将自己从系统删除,有多种办法可以实现该功能[5],本文程序主要通过比较新旧版本的日期号来实现替换新版本应用程序的功能。
3 实现软件自动在线升级的原理
写两个程序,一个是主程序;一个是升级程序;所有升级任务都由升级程序完成。
1.启动升级程序,升级程序连接到网站,下载新的主程序(当然还包括支持的库文件、XML配置文档等)到临时文件夹;
2.升级程序获取服务器端XML配置文件中新版本程序的更新日期或版本号或文件大小;
3.升级程序获取原有客户端应用程序的最近一次更新日期或版本号或文件大小,两者进行比较;如果发现升级程序的日期大于原有程序的最新日期,则提示用户是否升级;或者是采用将现有版本与最新版本作比较,发现最新的则提示用户是否升级;也有人用其它属性如文件大小进行比较,发现升级程序的文件大小大于旧版本的程序的大小则提示用户升级。本文主要采用比较新旧版本更新日期号来提示用户升级。
4.如果用户选择升级,则获取下载文件列表,开始进行批量下载文档;
5.升级程序检测旧的主程序是否活动,若活动则关闭旧的主程序;
6.删除旧的主程序,拷贝临时文件夹中的文件到相应的位置;
7.检查主程序的状态,若状态为活动的,则启动新的主程序;
8.关闭升级程序,升级完成[4]。
4 用C#实现在线升级的关键步骤
这里我主要使用日期信息来检测是否需要下载升级版本。
4.1 准备一个XML配置文件
名称为AutoUpdater.xml,作用是作为一个升级用的模板,显示需要升级的信息。
名称为AutoUpdater.xml,作用是作为一个升级用的模板,显示需要升级的信息。
<?xml version=1.0?> //xml版本号
<AutoUpdater>
<URLAddres URL=192.168.198.113/vbroker/log//>/......余下全文>>
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
沧州运河区十五中到沧州新一中的公交线
真诚交友的格言,关于交友的经典说说
项羽的本命武器是什么,项羽拿的兵器是什么名
导游好做吗,做导游工作,是不是轻松?
日了一辈子,当午也不见得会日,是什么意思啊
摄人心魄的意思是什么,惊心动魄近义词
做什么菜放剁辣椒好吃,剁椒做什么菜好吃
古诗《州桥》的名句
用一句话赞美广州,珠江夜游的话广州塔码头可
箬坑村卫生室在什么地方啊,我要过去处理事情
交警对高考生祝福语,爸爸是老师,教师节到了
为什么厘米是最适合的单位去测量手指的长度
查古人咏荷的诗词,描写乔迁的诗词
平遥碗托怎么做?
关于树与思考的诗句,春天描写草花人树鸟的诗
推荐资讯
滴胶压板是干什么的
HTC 如影怎么操作?
巴西人不喜欢什么颜色,巴西吃饭礼仪
北塘古镇好玩吗,丽江古城和束河古镇有什么区
为什么三星手机也可以用塞班系统?
单选题戊戌变法的历史作用主要表现在A.推翻了
小区内湖边警示标语,小区假山边水池警示语
现在韩式料理生意好做吗?
高考文艺励志语录,励志、唯美、伤感的句子
“知了、知了…”,清脆的蝉鸣提醒你夏天到了
如果叉车把别人东西搞坏了需要负责任吗?
脉搏和心跳一样吗,心率和心跳一样吗 心率和心
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?