星辰.Net技术社区论坛

首页 » .NET » Silverlight » Silverlight 2应用程序中XAP文件详解
admin - 2008-7-12 12:44:00
XAP文件是什么:“ÁAî%÷î̊www.netcsharp.cn­«”1IècQ¹
XAP文件是Silverlight 2应用程序编译打包后的一个文件,包括了Silverlight2应用程序所需的一切文件,如程序集、资源文件等。这里的xap并没有任何特殊的意义,仅仅是Silverlight2应用程序编译后生成文件的扩展名而已,本质上它是一个标准的zip压缩文件。我们可以修改.xap文件后缀为.zip文件,并用解压缩工具打开,可以看到其中包含的文件::“ÁAî%÷î̊www.netcsharp.cn­«”1IècQ¹
:“ÁAî%÷î̊www.netcsharp.cn­«”1IècQ¹
如何使用XAP文件:“ÁAî%÷î̊www.netcsharp.cn­«”1IècQ¹
xap文件的使用想必大家都已经熟知了,在ASP.NET页面中,我们可以使用Silverlight Control来引用xap文件,如下代码所示::“ÁAî%÷î̊www.netcsharp.cn­«”1IècQ¹
:“ÁAî%÷î̊www.netcsharp.cn­«”1IècQ¹
注意Silverlight控件依赖于ScriptManager,因此在ASP.NET页面上必须要有一个ScriptManager控件。在HTML页面(或者PHP、JSP等)中,我们可以使用如下的方式::“ÁAî%÷î̊www.netcsharp.cn­«”1IècQ¹
:“ÁAî%÷î̊www.netcsharp.cn­«”1IècQ¹
这里的type="application/x-silverlight-2-b2" 指定了当前版本为Silverlight 2 Beta 2,后面的超链接指定了当用户的机器上没有安装Silverlight 2插件时的下载地址及显示的图片。 :“ÁAî%÷î̊www.netcsharp.cn­«”1IècQ¹
XAP文件如何执行:“ÁAî%÷î̊www.netcsharp.cn­«”1IècQ¹
一旦我们引用了一个xap文件,在应用程序运行时Silverlight插件将会下载该xap文件并在一个独立的子窗口中运行,如下图所示::“ÁAî%÷î̊www.netcsharp.cn­«”1IècQ¹
:“ÁAî%÷î̊www.netcsharp.cn­«”1IècQ¹
XAP文件包含什么:“ÁAî%÷î̊www.netcsharp.cn­«”1IècQ¹
在本文一开始我们就说,XAP文件包含了Silverlight2应用程序所需的一切文件,如程序集、资源文件等,但它至少会包含两个文件,一个是当前Silverlight应用程序的程序集,另一个是AppManifest.xaml文件。AppManifest.xaml文件相当于是一个清单(类似于库存单一样),如下代码所示::“ÁAî%÷î̊www.netcsharp.cn­«”1IècQ¹
:“ÁAî%÷î̊www.netcsharp.cn­«”1IècQ¹
<Deployment xmlns="http://schemas.microsoft.com/client/2007/deployment" :“ÁAî%÷î̊www.netcsharp.cn­«”1IècQ¹
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml":“ÁAî%÷î̊www.netcsharp.cn­«”1IècQ¹
            EntryPointAssembly="XapFileExplain":“ÁAî%÷î̊www.netcsharp.cn­«”1IècQ¹
            EntryPointType="XapFileExplain.App":“ÁAî%÷î̊www.netcsharp.cn­«”1IècQ¹
            RuntimeVersion="2.0.30523.6">:“ÁAî%÷î̊www.netcsharp.cn­«”1IècQ¹
  <Deployment.Parts>:“ÁAî%÷î̊www.netcsharp.cn­«”1IècQ¹
    <AssemblyPart x:Name="XapFileExplain" Source="XapFileExplain.dll" />:“ÁAî%÷î̊www.netcsharp.cn­«”1IècQ¹
  </Deployment.Parts>:“ÁAî%÷î̊www.netcsharp.cn­«”1IècQ¹
</Deployment>
:“ÁAî%÷î̊www.netcsharp.cn­«”1IècQ¹
:“ÁAî%÷î̊www.netcsharp.cn­«”1IècQ¹
它至少包括了如下几个方面的信息::“ÁAî%÷î̊www.netcsharp.cn­«”1IècQ¹
1.应用程序入口点的程序集:“ÁAî%÷î̊www.netcsharp.cn­«”1IècQ¹
2.应用程序入口点的类型:“ÁAî%÷î̊www.netcsharp.cn­«”1IècQ¹
3.应用程序运行时的版本:“ÁAî%÷î̊www.netcsharp.cn­«”1IècQ¹
4.应用程序相关的所有程序集:“ÁAî%÷î̊www.netcsharp.cn­«”1IècQ¹
XAP文件如何生成:“ÁAî%÷î̊www.netcsharp.cn­«”1IècQ¹
XAP文件在Silverlight项目编译时由开发环境自动生成,一般情况下,不需要我们手工进行控制。这里大家可能会想到一个问题,如果打包在XAP文件中的程序集过多,会造成文件体积变大,有些程序集虽然我们在程序中用到了,但并不是一下载XAP文件就要用到,可能是某一特定的时刻才会用,那这样可不可以只打包一些必须的程序集,而其它的在需要时再下载呢?答案自然是肯定的。:“ÁAî%÷î̊www.netcsharp.cn­«”1IècQ¹
如我们程序中用到了System.Windows.Controls.Extended程序集,但我们又不想它打包在xap文件中,该如何做呢?可以通过设置程序集属性来实现,如下图所示::“ÁAî%÷î̊www.netcsharp.cn­«”1IècQ¹
:“ÁAî%÷î̊www.netcsharp.cn­«”1IècQ¹
我们可以设置程序集的Copy Local属性为False,这样该程序集将不会打包在XAP文件中,等需要时我们可以在手工进行下载,如使用WebClient进行下载等。:“ÁAî%÷î̊www.netcsharp.cn­«”1IècQ¹
puttnam02 - 2008-7-15 16:17:00
说的很好谢谢!!!!:D :D :D:“ÁAî%÷î̊www.netcsharp.cn­«”1IècQ¹
1
查看完整版本: Silverlight 2应用程序中XAP文件详解