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

王朝c#·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

原理:

在服务端存放所有的版本内容,在客户端只存放最新的版本,根据版本信息来进行自动的更新。

相关配置:

服务端需要设置一个虚拟目录,也就是说要开放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、对异常的情况进行了充分的处理。例如:当一个用户自己改变了自己本地的版本信息,使得本地的版本比服务器还要高的时候,程序会自动将本地所有的文件删除。还有当操作发生了错误的时候,会将错误也都写到日志文件中。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航