Microsoft Application Blocks for .net之Updater学习笔记

类别:.NET开发 点击:0 评论:0 推荐:
原理: 在服务端存放所有的版本内容,在客户端只存放最新的版本,根据版本信息来进行自动的更新。 相关配置: 服务端需要设置一个虚拟目录,也就是说要开放80端口,然后将不同版本的程序放在虚拟目录下不同的文件夹中。例如:虚拟目录中有"1.0.0.0,"1.1.0.1","1.1.1.8"三个目录,那么在其中就存放着三个不同版本的程序。 根目录下面的文件: 1、 serverManifest.xml文件:里面存放当前最新版本所在的路径,每次需要更新的文件名以及相关的证书(加密解密用)。 2、 PublilcKey.xml和PrivateKey.xml,:里面有根据相关信息产生的RSA算法的密钥,用来进行用户的认证和文件的加密。 客户端存放文件的文件夹中有一个子件夹,文件夹的名称就是最后下载的版本的名称,例如:"1.1.0.0",在其中存放着需要更新的程序文件,在根文件夹中有以下的几个文件: 1、AppStart.exe->用来启动自动更新 2、Appstart.exe.config->里面有相关的配置信息 A、程序文件存放的位置 B、当前最新的版本号 C、更新程序的名字 D、最后更新的时间 3、每次更新的日志文件,日志文件的起名方式”UpdateLog+年月日时分秒” 运行步骤: 1、 客户端运行程序,该程序是通过自动更新程序启动的。 2、 自动更新程序会检查网络是否连通。 3、 如果网络可用,程序会检测当前的程序的版本和服务器上最新的版本是否一样,如果一样就不进行更新操作。 4、 如果本地的程序版本号小于服务器的版本,那么会弹出对话框,提示用户当前服务器上有更新的版本,问用户是否马上进行更新。 5、 如果用户选择开始更新,那么首先客户端要与服务端进行认证 6、 在认证通过之后,从服务端先下载serverManifest.xml文件,从其中找到需要更新的文件的位置和名字,并进行证书的验证。 7、 认证通过之后,在本地建立“Newfile”目录,将需要下载的文件先下载到这个临时目录里面。 8、 待下载完成之后,以新的版本号来重新命名文件夹,并更改本地的配置文件 9、 提示用户重新启动程序,确认后删除旧版本的文件更新结束。 值得借鉴的地方: 1、 所有的操作都记录到日志文件中,不管成功与否,我们都可以看到我们的操作产生了什么样的结果。 2、 很多信息都使用xml文件来存放,方便。 3、 在进行更新的时候充分的进行了用户的验证和文件的验证,保证了程序的安全。 4、 对异常的情况进行了充分的处理。例如:当一个用户自己改变了自己本地的版本信息,使得本地的版本比服务器还要高的时候,程序会自动将本地所有的文件删除。还有当操作发生了错误的时候,会将错误也都写到日志文件中。

本文地址:http://com.8s8s.com/it/it41835.htm