Application Updater Block v2.0 更新检查过程分析

来源:互联网 发布:祖玛java 7723 编辑:程序博客网 时间:2024/06/05 22:30
更新判断方式与v1.0的区别
v2.0不再使用版本号来区分更新是否可用,而是采用manifest ID+application ID来判断,对于每一个新的更新,即使是同一个应用程序,必须更新manifest ID。同时要注意,一个应用程序的application ID一旦确定就不能随意改变,因为客户端的配置文件中,已经写入了确定了的application ID,不能改变,当然你可以尝试通过更新客户端的配置文件来改变application ID。

更新检查 调用过程
1. 客户端新建一个ApplicationUpdaterManager实例,ApplicationUpdaterManager将负责整个升级过程控制
2. 调用ApplicationUpdaterManager的CheckForUpdates()方法
3. CheckForUpdates()内部调用CheckForUpdates(Uri Location)方法,其中的Location是服务器端Manifest文件的url路径,可通过UpdaterConfigurationView.DefaultManifestUriLocation获得。
4. CheckForUpdates(Uri Location)中有两个处理过程,一个是处理上一次更新过程中未完成的更新,一个是从服务器段下载最新的manifest文件,并判断是否要进行更新。
5. CheckForPendingUpdates()是专门用来处理未完成的更新的,该函数通过调用RegistryManager.Tasks属性获得未完成的任务列表。让我们来看看Tasks属性的实现
private Hashtable Tasks
{
    
get
    
{
        
if ( !loaded )
        
{
            Load();
            loaded 
= true;
        }

        
return registry;
    }

}
原创粉丝点击