更新判断方式与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属性的实现
privateHashtableTasks


{
get


{
if(!loaded)


{
Load();
loaded=true;
}
returnregistry;
}
}
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属性的实现
博客介绍了应用更新判断方式在v2.0与v1.0的区别,v2.0采用manifest ID+application ID判断更新,且application ID确定后一般不能改。还阐述了更新检查的调用过程,包括客户端创建实例、调用方法,以及处理未完成更新和下载manifest文件等步骤。
2435

被折叠的 条评论
为什么被折叠?



