| 论坛登陆 注册 | 教程 笑话 影视 投稿 |
![]() |
|
||||||||||||||||||||||||||||||||||||||||
实现.NET应用程序的自动更新 |
|
| www.xker.com 作者:李嘉 来源:CSDN开发高手 加入日期:2006-3-21 10:07:35 | |
一、.NET应用程序更新组件介绍 .NET 应用程序更新组件AppUpdater 是使用.NET框架开发的。尽管AppUpdater 不是微软的产品,但是只要你在VS.NET工具栏中添加了该组件,就可以象使用其它组件一样通过拖拽的方式将该组件从工具栏中拖放到你的应用程序中,并设置一些属性(比如获取更新的位置、频率等)之后就可以使得你的客户端应用程序具备自动更新的功能。 二、工作原理 要深入理解.NET客户端应用程序更新组件的工作原理,需要仔细研究一下实现客户端应用程序更新有那些必须要做的事情。第一步需要做的是检查是否有更新;当发现有更新时,开始第二步工作——下载更新;当更新下载完成时,进行是最后一步的工作——实现更新。 (一) 为更新做检查 作为开发者,首先你得告诉应用程序到什么地方去做更新检查,否则它岂不是要大海捞针?其次,确定何时做更新检查。不可能用户每次一运行客户端程序,而它就在后台不停的进行更新检查,那多浪费资源!最后还有一项重要的事情需要解决,那就是如何进行更新检查。.NET应用程序更新组件使用HTTP进行通讯,这就允许客户端应用程序穿透防火墙来进行更新。并且进行更新检查所需要的地址就成了已知的Web服务器的一个URL地址,第一个问题顺利解决。 .NET应用程序更新组件在组件生成的基础上产生一个线程,该线程负责进行更新检查。该线程在大多数时间处于休眠状态,但会在设置好的间隔苏醒并实现一次更新检查。应用程序为新的更新所做的检查的频率依赖于各应用自身。进行更新检查的间隔常用值的范围一般是从一个小时到几天。这种轮询的基本方法并不适合于所有情况。比如Microsoft Money只是在用户让它去进行更新检查时它才去检查。在这种情况下,更新轮询线程可被禁用。 通过用命令调用更新组件的CheckForUpdate()方法来实现更新检查。 关于如何进行更新检查的方法有这样几种: 方法一:直接文件检查——使用HTTP来比较服务器和客户端应用程序的最后的修改日期/时间戳是否一致。如果服务器上有更新的文件,客户端就知道可以更新自己了。对于Web浏览器来讲,也是同样的道理,它知道是否需要重新下载一个html页面或图片或是否可以 重复使用先前已下载的。当应用程序有一个新的版本可用时,管理员简单地拷贝一个更新的版本来覆盖Web服务器上的旧版本。这种方法的问题在于更新不是自动进行,由此会出现潜在的失败可能。比如,如果管理员正在更新Web服务器上的应用程序版本,同时有个客户正在下载更新之前的版本,那么这个客户的计算机上就会既存在更新之前的一些文件,也存在更新之后新版本的一些文件。基于上述原因,对于重要的应用程序不提倡使用直接文件检查来更新。 方法二:显式检查——在服务器上使用一个显式的配置文件。一个可和.NET应用程序更新组件使用的有效服务器显式文件大致是这个样子:..
AvailableVersion指定最新的可用程序集的版本号。ApplicationURL属性指定该版本应用程序所在的URL地址。当管理员想要更新客户端应用程序时,他们就会将应用程序的新版本拷贝到Web服务器上并且适当地修改服务器显式文件。客户端自身会探测到服务器显式文件已被修改,然后下载显式文件。客户端随后比较显式文件中指定的程序集版本号与应用程序EXE文件的版本号。如果服务器显式文件中的可用版本号较新,应用程序就知道需要更新了。这种方法对大多数应用程序而言是推荐使用的方法。编辑:xker.com 上一篇:ASP.NET调用oracle实现快速分页 下一篇:没有了 |
|||
| 【关闭窗口】【技术交流】【收藏此页】 |
|
| 评论 | |
设为首页 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接 |
|
| Copyright © 2003-2006 xker.com All rights reserved.小新技术网 合作广告QQ:12231446 | |
|
|
| 本页浏览次数: |