通过前几篇的学习和实践,相信大家可以很轻松的创建个性化Silverlight Out of Browser应用。上周,在银光中国网论坛有人问到对于Silverlight Out of Browser应用,如何进行在线更新?这篇将针对该问题,介绍一下Silverlight的Out of Browser应用如何进行在线更新的,另外,我们将介绍Silverlight 4中提供的一个新的Out of Browser应用安装方式。

首先说说Silverlight Out of Browser应用在线更新

在本系列开篇的时候,我们已经介绍,Silverlight Out of Browser和Silverlight Web应用有一些不同,Silverlight Web当更新了服务器端的XAP文件后,用户在重新载入时,会自动更新XAP文件到本地临时目录。而Silverlight Out of Browser应用的自动更新是通过调用CheckAndDownloadUpdateAsync方法和Application.CheckAndDownloadUpdateCompleted实现的,在判断UpdateAvailable属性为True时,说明一个新版本已经被发现和成功下载,相反则是False。如果在检测中发现异常,则可以通过Error属性查看异常实例信息。

按照常规方法,我们都会在应用启动时进行更新检测,所以,我们需要将代码添加到App.xaml的构造函数中,

首先创建OnCheckAndDownloadUpdateCompleted检测是否有新版本允许下载,

 1 private void OnCheckAndDownloadUpdateCompleted(object sender, CheckAndDownloadUpdateCompletedEventArgs e)
 2 {
 3             if (e.UpdateAvailable && e.Error == null)
 4             {
 5                 MessageBox.Show("应用新版本已经下载成功,将在下次启动时生效。");
 6             }
 7             else if (e.Error != null)
 8             {
 9                 MessageBox.Show("在检测应用更新时, 在"
10                               + "出现以下错误信息:"
11                               + Environment.NewLine
12                               + Environment.NewLine
13                               + e.Error.Message);
14             }
15 }

然后,添加声明在App的构造函数中,使其在安装时进行版本更新检查,

 1 public App()
 2 {
 3             if (App.Current.InstallState == InstallState.Installed)
 4             {
 5                 App.Current.CheckAndDownloadUpdateCompleted += OnCheckAndDownloadUpdateCompleted;
 6                 App.Current.CheckAndDownloadUpdateAsync();
 7             }
 8 
 9             this.Startup += this.Application_Startup;
10             this.Exit += this.Application_Exit;
11             this.UnhandledException += this.Application_UnhandledException;
12 
13             InitializeComponent();
14 }

这样,在Silverlight OOB应用启动时,将检测是否是否有新版本下载,如果有则会自动更新,在下次启动应用时生效。

这里需要说明的是,Silverlight Out of Browser的自动更新,需要在信任应用(Trusted Application)下才能正常执行,否则将返回权限异常错误。

Silverlight Out of Browser的Silent安装模式

我们在Silverlight实例教程 - Out of Browser配置,安装和卸载中讨论过Silverlight OOB应用安装的两种方式,这里,我们将介绍Silverlight 4中新推出的一种安装方式,叫做Silent安装。这种安装方式是使用命令的方式安装Silverlight OOB应用到本地,该方式不会在客户端显示任何窗口提示信息,悄然的把应用安装到本地。通常,一些开发人员习惯该安装方式应用于一个BAT批处理文件中,让非专业用户简单的安装和使用其应用程序。其实这种安装方式,也就是将XAP文件安装到本地。

大家还记得开篇时介绍sllauncher.exe命令么"C:\Program Files (x86)\Microsoft Silverlight\sllauncher.exe" 1359404922.localhost,我们使用sllauncher命令执行本地XAP文件,当我们添加/install参数时,即可实现silent安装OOB应用。

先看看具体的silent安装命令格式:

"C:\Program Files\Microsoft Silverlight\sllauncher.exe"  
/install:"C:\SilverlightOOBDemo\SilverlightOOBDemo.xap"  
/origin:http://localhost:29162/ClientBin/SilverlightOOBDemo.xap 
/shortcut:desktop+startmenu  
/overwrite   

从上面的命令中可以看出sllauncher添加部分参数后,实现不同的功能操作,例如

/install:“XAP文件目的路径”,这个参数是允许开发人员自定义XAP文件安装路径,可以是本地磁盘,也可以是网络路径。这个参数是silent安装模式必需的参数。

/origin:"XAP文件源路径",这个参数是设置XAP文件的源URL,其目的是为了自动更新而设。作为官方推荐设置该参数,保证其应用自动更新。

/shortcut:desktop+startmenu,从字面意思就可以看出,这个参数是创建应用快捷方式的,desktop+startmenu为在桌面和开始菜单都创建该应用快捷方式,如果只想创建桌面快捷方式,使用/shortcut:desktop即可,创建开始菜单快捷方式与之同理。

/overwrite,这个选项是确认当前安装XAP文件是否覆盖已经安装过的XAP文件,通常来说,我们都会设置覆盖,这样保持应用为最新版本。

根据以上解释,可以对照看出上面silent安装命令的意思,运行sllauncher,安装SilverlightOOBDemo.xap到本地,源更新地址为http://localhost:29162/ClientBin/SilverlightOOBDemo.xap,创建桌面和开始菜单快捷方式,并且覆盖原有版本。

另外我们再介绍两个常用sllauncher命令参数:

/emulate:“XAP文件目的路径”,该命令参数允许安装OOB应用后,自动运行该应用,就像现在很多软件自带的autorun功能相似。

使用方法:

"C:\Program Files\Microsoft Silverlight\sllauncher.exe"  
/emulate:"C:\SilverlightOOBDemo\SilverlightOOBDemo.xap"  
/origin:http://localhost:29162/ClientBin/SilverlightOOBDemo.xap 
/overwrite   

/uninstall,该命令参数允许开发人员通过命令的方式卸载Silverlight OOB应用。其使用方法:

"C:\Program Files\Microsoft Silverlight\sllauncher.exe"  
/uninstall
/origin:http://localhost:29162/ClientBin/SilverlightOOBDemo.xap 

看到这里,我想大家应该有一些明白了,无论是安装还是运行Silverlight OOB应用都和sllauncher命令有关,

安装时,使用/install参数,

运行时,使用默认"C:\Program Files (x86)\Microsoft Silverlight\sllauncher.exe" 1359404922.localhost,

卸载时,使用/uninstall参数。

这个就是Silverlight 4中Out of Browser应用特性之一,Silent Install。

写到这里,Silverlight 4 Out of Browser实例系列也应该结束了,在该系列中,我们结合着实际例程学习了Silverlight Out of Browser的基础知识以及开发技巧。

在以后的时间里,希望大家能够勤于动手,多实践,开发出更多个性化的Silverlight Out of Browser应用。

欢迎大家加入"专注Silverlight" 技术讨论群:

32679955(六群)
23413513(五群)
32679922(四群)
100844510(三群)
37891947(二群)
22308706(一群)

Silverlight实例教程 - Out of Browser在线更新和Silent安装相关推荐

  1. 一起谈.NET技术,Silverlight实例教程 - Out of Browser的Debug和Notifications窗口

    Silverlight 实例教程索引 Silverlight 实例教程 - Out of Browser开篇 Silverlight 实例教程 - Out of Browser配置,安装和卸载 Sil ...

  2. Silverlight实例教程 - Out of Browser开篇

    众所周知,学习一门IT技术,最关键的是实践,无论是软件开发还是网络调试,只要在真实环境下勤于动手和思考,很快就能掌握一门技术,Silverlight也不例外.为了帮助更多朋友快速学习掌握Silverl ...

  3. Silverlight实例教程 - Out of Browser的自定义应用

    在上两篇教程中,讲述了Silverlight的Out of Browser理论知识和基础实践.本节将讲述如何创建自定义的Out of Browser应用以及如何调试Silverlight的Out of ...

  4. Silverlight实例教程 - Out of Browser的Debug和Notifications窗口

    熟悉Silverlight的朋友应该知道,Silverlight从1.0版本到现在的4.0版本,其功能性越来越强大,从下图我们可以看出,Silverlight的应用模型的一个转变过程,从Javascr ...

  5. Silverlight实例教程 - Validation数据验证开篇

    Silverlight 4 Validation验证实例系列 Silverlight实例教程 - Validation数据验证开篇 Silverlight实例教程 - Validation数据验证基础 ...

  6. Silverlight实例教程 - Navigation导航框架系列汇总

    Silverlight实例教程导航框架系列,结合实例讲述Silverlight导航开发基础,该教程不仅仅适用于Silverlight,而且可以被应用于Windows Phone开发领域. 文章列表: ...

  7. Silverlight实例教程 - Validation验证系列汇总

    转自http://www.cnblogs.com/jv9/archive/2010/09/27/1836394.html Silverlight Validation验证系列教程,详细讲解Silver ...

  8. Silverlight实例教程 - 理解Navigation导航框架Frame类

    通过"Navigation导航框架开篇"的介绍,可以了解到Silverlight导航框架可被应用于多种场合,最为常见的是实现Silverlight项目内部页面切换.在Silverl ...

  9. Silverlight实例教程 – Datagrid,Dataform数据验证和ValidationSummary

    上一篇,我们讨论了,捕获用户提交数据验证.本篇将集中讨论Datagrid和Dataform两个数据控件的数据验证方法,其中,我们会附加介绍一个新的验证控件ValidationSummary. 概述 D ...

最新文章

  1. 进行将多张CAD图纸转换成高清WMF格式的操作是什么?
  2. 基础知识 一个工具给win7 win10的同学 或者MAC 可以跳过
  3. python爬取分页数据
  4. 三维重建13X:一些算法试题-今日头条AI-Lab
  5. 带你初窥谷歌TV的硬软之秘
  6. 掀开图片显示介绍的css效果
  7. mongodb安装及可视化工具robomongo安装
  8. 他是浙大 19 岁大一新生,三个月斩获 WWDC 19 奖学金!
  9. Vue的批量更新原理
  10. 利用OpenSSL创建自签名的SSL证书备忘
  11. HaDoop安装配置笔记
  12. 三菱PLC编程软件Work2的FB块加密后的解密方法
  13. sql server 2008 新建服务器注册,SQL Server 2008中不能注册服务器怎么回事
  14. 鬼谷八荒先天气运修改器
  15. 微信图片怎么添加竖排文字_微信图文排版怎么在图片上加文字?
  16. 产品经理的主要工作职责
  17. 迪斯尼计算机动画,迪斯尼经典动画的十大运动规律
  18. bilibili 哔哩哔哩 2018秋招试题
  19. 棒球·飞盘·MLB棒球创造营
  20. PMP 易错题汇总(二)

热门文章

  1. cocos2d-x-3.2 lua命名空间前缀
  2. 实现跨浏览器的HTML5占位符
  3. 学点 C 语言(19): 数据类型 - 数组
  4. matlab 最小二乘法拟合_机器学习十大经典算法之最小二乘法
  5. Linux Kernel TCP/IP Stack — Overview
  6. C 语言编程 — 结构化程序流的汇编代码与 CPU 指令集
  7. Ceph 的用户管理与认证
  8. Openstack_通用技术_RPC 远程异步调用
  9. 红帽虚拟化RHEV-PXE批量安装RHEV-H
  10. COGS 2353 2355 2356 2358 有标号的DAG计数