Silverlight實例教程 - Out of Browser在線更新和Silent安裝

作者: jv9  來源: 博客園  發布時間: 2010-08-15 10:26  閱讀: 2738 次  推薦: 0   原文鏈接   [收藏]  

  Silverlight 實例教程索引

  通過前幾篇的學習和實踐,相信大家可以很輕松的創建個性化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安裝命令格式,從上面的命令中可以看出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應用。

0
0
 
 
 

文章列表

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()