如何实现程序更新版本自动提示

 我来答
莘认度
2016-12-02 · TA获得超过156个赞
知道小有建树答主
回答量:205
采纳率:0%
帮助的人:215万
展开全部
用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,作用是作为一个升级用的模板,显示需要升级的信息。
AiPPT
2024-09-19 广告
随着AI技术的飞速发展,如今市面上涌现了许多实用易操作的AI生成工具1、简介:AiPPT: 这款AI工具智能理解用户输入的主题,提供“AI智能生成”和“导入本地大纲”的选项,生成的PPT内容丰富多样,可自由编辑和添加元素,图表类型包括柱状图... 点击进入详情页
本回答由AiPPT提供
g肯定Jk
2017-07-26 · TA获得超过2.4万个赞
知道大有可为答主
回答量:2.5万
采纳率:6%
帮助的人:2.5亿
展开全部
- -简单点就用CMS那些后台 你模块加好了 新增新闻会自己排列的 。如果自己写代码的话,PHP这些内容肯定都是通过SQL动态获得 你SQL语句按时间排序下 取最新的几十条显示不就行了嘛
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式