none
XAP文件分析 RRS feed

  • 常规讨论

  • 概述


    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文件,希望對大家有用。
    本文章來自於神魂顛倒論壇  http://bbs.flash2u.com.tw
    原文網址:http://bbs.flash2u.com.tw/dispbbs_220_87633.html


    My blog: http://blog.csdn.net/dotfun http://dotfun.cnblogs.com

    My contact: QQ:372900288 E-mail:372900288@qq.com msn:sellnet007@hotmail.com

    2009年3月9日 6:43
    版主