在WinForm应用程序中实现自动升级功能.doc
上传人:yy****24 上传时间:2024-09-10 格式:DOC 页数:16 大小:191KB 金币:16 举报 版权申诉
预览加载中,请您耐心等待几秒...

在WinForm应用程序中实现自动升级功能.doc

在WinForm应用程序中实现自动升级功能.doc

预览

免费试读已结束,剩余 6 页请下载文档后查看

16 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

在WinForm应用程序中实现自动升级功能首先,要确定程序应去哪里下载需要升级的文件。我选择了到指定的网站上去下载,这样比较简单,也通用一些。在网站上,需放置一个当前描述最新文件列表的文件,我估且叫它服务器配置文件。这个文件保存了当前最新文件的版本号(lastversion),大小(size),下载地址(url),本地文件的保存路径(path),还有更新后,程序是否需要重新启动(needRestart)。updateService.xml<?xmlversion="1.0"encoding="utf-8"?><updateFiles><filepath="1.jpg"url="http://www.ff1818.com/1.jpg"lastver="2.0.0.0"size="100"needRestart="true"/><filepath="2.jpg"url="http://www.ff1818.com/2.jpg"lastver="2.0.0.0"size="100"needRestart="true"/><filepath="3.jpg"url="http://www.ff1818.com/3.jpg"lastver="2.0.0.0"size="100"needRestart="true"/><filepath="4.jpg"url="http://www.ff1818.com/4.jpg"lastver="2.0.0.0"size="100"needRestart="true"/><filepath="5.jpg"url="http://www.ff1818.com/5.jpg"lastver="2.0.0.0"size="100"needRestart="true"/></updateFiles>同时,客户端也保存了一个需要升级的本地文件的列表,形式和服务器配置文件差不多,我们叫它本地配置文件。其中,<Enable>节点表示是否启用自动升级功能,<ServerUrl>表示服务器配置文件的地址。update.config<?xmlversion="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://www.ff1818.com/updateService.xml</ServerUrl></Config>使用自动升级组件的程序在启动时,会去检查这个配置文件。如果发现有配置文件中的文件版本和本地配置文件中描述的文件版本不一致,则提示用户下载。同时,如果本地配置文件中某些文件在服务器配置文件的文件列表中不存在,则说明这个文件已经不需要了,需要删除。最后,当升级完成后,会更新本地配置文件。我们先来看一下如何使用这个组件。在程序的Program.cs的Main函数中:[STAThread]staticvoidMain(){Application.EnableVisualStyles();Application.SetCompatibleTextRenderingDefault(false);AutoUpdaterau=newAutoUpdater();try{au.Update();}catch(System.Net.WebExceptionexception){MessageBox.Show("无法找到指定资源\n\n"+exception.Message,"自动升级",MessageBoxButtons.OK,MessageBoxIcon.Error);}catch(System.Xml.XmlExceptionexception){MessageBox.Show("下载的升级文件有错误\n\n"+exception.Message,"自动升级",MessageBoxButtons.OK,MessageBoxIcon.Error);}catch(System.NotSupportedExceptionexception){MessageBox.Show("升级地址配置错误\n\n"+exception.Message,"自动升级",MessageBoxButtons.OK,MessageBoxIcon.Error);}catch(System.ArgumentExceptionexception){MessageBox.Show("下载的升级文件有错误\n\n"+except