|
概述
XAP文件是Silverlight 2應(yīng)用程序編譯打包后的一個(gè)文件,它是一個(gè)標(biāo)準(zhǔn)的zip壓縮文件,包括了Silverlight 2應(yīng)用程序所需的一切文件,如程序集、資源文件等。
本文將對(duì)Silverlight中的XAP文件進(jìn)行詳細(xì)的說明。
XAP文件是什么
XAP文件是Silverlight 2應(yīng)用程序編譯打包后的一個(gè)文件,包括了Silverlight 2應(yīng)用程序所需的一切文件,如程序集、資源文件等。這里的xap并沒有任何特殊的意義,僅僅是Silverlight 2應(yīng)用程序編譯后生成文件的擴(kuò)展名而已,本質(zhì)上它是一個(gè)標(biāo)準(zhǔn)的zip壓縮文件。我們可以修改.xap文件后綴為.zip文件,并用解壓縮工具打開,可以看到其中包含的文件:
如何使用XAP文件
xap文件的使用想必大家都已經(jīng)熟知了,在ASP.NET頁面中,我們可以使用Silverlight Control來引用xap文件,如下代碼所示:
注意Silverlight控件依賴于ScriptManager,因此在ASP.NET頁面上必須要有一個(gè)ScriptManager控件。在HTML頁面(或者php、JSP等)中,我們可以使用如下的方式:
這里的type="application/x-silverlight-2-b2" 指定了當(dāng)前版本為Silverlight 2 Beta 2,后面的超鏈接指定了當(dāng)用戶的機(jī)器上沒有安裝Silverlight 2插件時(shí)的下載地址及顯示的圖片。
XAP文件如何執(zhí)行
一旦我們引用了一個(gè)xap文件,在應(yīng)用程序運(yùn)行時(shí)Silverlight插件將會(huì)下載該xap文件并在一個(gè)獨(dú)立的子窗口中運(yùn)行,如下圖所示:
XAP文件包含什么
在本文一開始我們就說,XAP文件包含了Silverlight 2應(yīng)用程序所需的一切文件,如程序集、資源文件等,但它至少會(huì)包含兩個(gè)文件,一個(gè)是當(dāng)前Silverlight應(yīng)用程序的程序集,另一個(gè)是AppManifest.xaml文件。AppManifest.xaml文件相當(dāng)于是一個(gè)清單(類似于庫存單一樣),如下代碼所示:
<Deployment xmlns="http://schemas.microsoft.com/client/2007/deployment" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" EntryPointAssembly="XapFileExplain" EntryPointType="XapFileExplain.App" RuntimeVersion="2.0.30523.6"> <Deployment.Parts> <AssemblyPart x:Name="XapFileExplain" Source="XapFileExplain.dll" /> </Deployment.Parts></Deployment>
它至少包括了如下幾個(gè)方面的信息:
1.應(yīng)用程序入口點(diǎn)的程序集
2.應(yīng)用程序入口點(diǎn)的類型
3.應(yīng)用程序運(yùn)行時(shí)的版本
4.應(yīng)用程序相關(guān)的所有程序集
XAP文件如何生成
XAP文件在Silverlight項(xiàng)目編譯時(shí)由開發(fā)環(huán)境自動(dòng)生成,一般情況下,不需要我們手工進(jìn)行控制。這里大家可能會(huì)想到一個(gè)問題,如果打包在XAP文件中的程序集過多,會(huì)造成文件體積變大,有些程序集雖然我們?cè)诔绦蛑杏玫搅耍⒉皇且幌螺dXAP文件就要用到,可能是某一特定的時(shí)刻才會(huì)用,那這樣可不可以只打包一些必須的程序集,而其它的在需要時(shí)再下載呢?答案自然是肯定的。
如我們程序中用到了System.Windows.Controls.Extended程序集,但我們又不想它打包在xap文件中,該如何做呢?可以通過設(shè)置程序集屬性來實(shí)現(xiàn),如下圖所示:
我們可以設(shè)置程序集的Copy Local屬性為False,這樣該程序集將不會(huì)打包在XAP文件中,等需要時(shí)我們可以在手工進(jìn)行下載,如使用WebClient進(jìn)行下載等。
總結(jié)
本文詳細(xì)介紹了Silverlight 2中的XAP文件,希望對(duì)大家有用。
NET技術(shù):Silverlight 2應(yīng)用程序中XAP文件揭秘,轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。