Silverlight 2應用程序中XAP文件揭秘

Silverlight 2應用程序中XAP文件揭秘

概述

XAP文件是Silverlight 2應用程序編譯打包後的一個文件,它是一個標準的zip壓縮文件,包括了Silverlight 2應用程序所需的一切文件,如程序集、資源文件等。

本文將對Silverlight中的XAP文件進行詳細的說明。

XAP文件是什麼

XAP文件是Silverlight 2應用程序編譯打包後的一個文件,包括了Silverlight 2應用程序所需的一切文件,如程序集、資源文件等。這裡的xap並沒有任何特殊的意義,僅僅是Silverlight 2應用程序編譯後生成文件的擴展名而已,本質上它是一個標準的zip壓縮文件。我們可以修改.xap文件後綴為.zip文件,並用解壓縮工具打開,可以看到其中包含的文件:



如何使用XAP文件

xap文件的使用想必大家都已經熟知了,在ASP.NET頁面中,我們可以使用Silverlight Control來引用xap文件,如下語法所示:



注意Silverlight控件依賴於ScriptManager,因此在ASP.NET頁面上必須要有一個ScriptManager控件。在HTML頁面(或者PHP、JSP等)中,我們可以使用如下的方式:



這裡的type="application/x-silverlight-2-b2" 指定了目前版本為Silverlight 2 Beta 2,後面的超連結指定了當使用者的機器上沒有安裝Silverlight 2插件時的下載地址及顯示的圖片。


XAP文件如何執行

一旦我們引用了一個xap文件,在應用程序運行時Silverlight插件將會下載該xap文件並在一個獨立的子視窗中運行,如下圖所示:




XAP文件包含什麼

在本文一開始我們就說,XAP文件包含了Silverlight 2應用程序所需的一切文件,如程序集、資源文件等,但它至少會包含兩個文件,一個是目前Silverlight應用程序的程序集,另一個是AppManifest.xaml文件。AppManifest.xaml文件相當於是一個清單(類似於庫存單一樣),如下語法所示:






它至少包括了如下幾個方面的訊息:

1.應用程序入口點的程序集
2.應用程序入口點的類型
3.應用程序運行時的版本
4.應用程序相關的所有程序集


XAP文件如何產生

XAP文件在Silverlight項目編譯時由開發環境自動生成,一般情況下,不需要我們手工進行控制。這裡大家可能會想到一個問題,如果打包在XAP文件中的程序集過多,會造成文件體積變大,有些程序集雖然我們在程序中用到了,但並不是一下載XAP文件就要用到,可能是某一特定的時刻才會用,那這樣可不可以只打包一些必須的程序集,而其它的在需要時再下載呢?答案自然是肯定的。







如我們程序中用到了System.Windows.Controls.Extended程序集,但我們又不想它打包在xap文件中,該如何做呢?可以通過設定程序集屬性來實現,如下圖所示:



我們可以設定程序集的Copy Local屬性為False,這樣該程序集將不會打包在XAP文件中,等需要時我們可以在手工進行下載,如使用WebClient進行下載等。

總結

本文詳細介紹了Silverlight 2中的XAP文件,希望對大家有用。