Silverlight實例教程 - Out of Browser在線更新和Silent安裝
Silverlight 實例教程索引
- Silverlight 實例教程 - Out of Browser開篇
- Silverlight 實例教程 - Out of Browser配置,安裝和卸載
- Silverlight 實例教程 - Out of Browser的自定義應用
- Silverlight 實例教程 - Out of Browser存取本地文件系統
- Silverlight 實例教程 - Out of Browser與COM的交互基礎
- Silverlight 實例教程 - Out of Browser與Office的互操作
- Silverlight 實例教程 - Out of Browser的Debug和Notifications窗口
- Silverlight 實例教程 - Out of Browser音樂播放器
- Silverlight 實例教程 - Out of Browser與COM互操作實例
- Silverlight 實例教程 - Out of Browser在線更新和Silent安裝
通過前幾篇的學習和實踐,相信大家可以很輕松的創建個性化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檢測是否有新版本允許下載。
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的構造函數中,使其在安裝時進行版本更新檢查:
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安裝命令格式,從上面的命令中可以看出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功能相似。
使用方法:
/emulate:"C:\SilverlightOOBDemo\SilverlightOOBDemo.xap"
/origin:http://localhost:29162/ClientBin/SilverlightOOBDemo.xap
/overwrite
/uninstall,該命令參數允許開發人員通過命令的方式卸載Silverlight OOB應用。其使用方法:
/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應用。