Silverlight創建桌面客戶端應用程序獨立安裝包(同時打包Silverlight運行時和Xap應用程序文件)


      有時我們需要創建客戶端應用或者是不需要聯網的小程序,例如一個桌面小游戲,你想發給你的好友。使用Winform或者wpf,用戶需要安裝30多M的.net框架。然而我們使用Silverlight這個精簡框架作為.net運行時,打包后的應用程序就小的多。拿我打包的這個漢諾塔小游戲來說,全部打包后只有6M多,其中xap文件只有32K,其他是Silverlight 5安裝程序。這樣,用戶只需雙擊我們的打包后的安裝程序,就會自動創建程序的桌面和開始菜單的快捷方式,用戶感覺像是在使用winform應用程序。

打包的漢諾塔源程序來自Aimeast的【Silverlight】漢諾塔游戲,帶AI 一文

制作步驟:

1、下載並安裝打包程序NSIS,這是一個開源的打包程序。下載地址:http://nsis.sourceforge.net/Main_Page

  不同於VS的安裝項目,NSIS是基於腳本創建打包程序的。
2、讓我們的Silverlight應用程序支持OOB。在工程屬性中如下設置:

3、創建一個Setup目錄,目錄中包含如下文件:

其中AnyHanoi.xap是Silverlight的漢諾塔小游戲,setup.nsi是nsis的安裝腳本,silverlight.exe是Silverlight5安裝程序,splash.bmp用於在安裝時顯示一張圖片。

4、制作安裝腳本

用記事本打開setup.nsi文件,輸入以下內容並保存:

Name "Silverlight漢諾塔小游戲"
OutFile "SlAnyHanoi.exe"
InstallDir "$PROGRAMFILES\SLAnyHanoi"

XPStyle on

Function .onInit
# the plugins dir is automatically deleted when the installer exits
InitPluginsDir
File /oname=$PLUGINSDIR\splash.bmp "splash.bmp"
splash::show 1000 $PLUGINSDIR\splash
Pop $0
FunctionEnd

Section
SetOutPath "$INSTDIR"
SetOverwrite ifnewer
File "Silverlight.exe"
ExecWait "$INSTDIR\Silverlight.exe /q /doNotRequireDRMPrompt"
File "AnyHanoi.xap"
ExecWait '"$PROGRAMFILES\Microsoft Silverlight\sllauncher.exe" /install:"$INSTDIR\AnyHanoi.xap" /origin:"http://localhost/AnyHanoi.xap" /shortcut:desktop+startmenu'
SectionEnd

大體意思是:以靜默方式安裝Silverlight運行時(如果已經安裝了,這個過程會很快結束),然后通過sllauncher.exe(silverlight運行時自帶)安裝我們的應用程序,並創建快捷方式。

5、編譯腳本,生成安裝程序:

右鍵點擊setup.nsi,選擇"Compile NSIS Script",會在此目錄下輸出的安裝程序:

SlAnyHanoi.exe就是我們要的,發給你的用戶吧。

6、在沒有安裝Silverlight的XP虛擬機上測試,成功!

英文原文來自這里


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM