代码之家  ›  专栏  ›  技术社区  ›  AngryHacker

XAP文件的结构如何?

  •  2
  • AngryHacker  · 技术社区  · 14 年前

    问题:

    1. xap文件是独立的吗?
    2. 它们是否链接到我在项目中引用的所有DLL中?
    3. 如果我需要分发我的应用程序,我所要做的就是将xap文件交给某人吗?
    3 回复  |  直到 14 年前
        1
  •  3
  •   Jimmy    14 年前
    1. 默认情况下,是。备选方案见答案3。
    2. 默认情况下,除了运行时安装的核心DLL之外,所有DLL都将包含来自SDK、工具箱、第三方控件或您自己的库的任何内容。
    3. 默认情况下,是。但是,从Silverlight 3开始,有一个选项可以将某些程序集(例如来自SDK的任何程序集)打包到单独的zip文件中,这些文件是单独下载的。在Visual Studio中,在项目属性中查找一个名为“使用应用程序库缓存减小xap大小”的复选框。此选项可切换是否创建/使用zip文件。启用zip选项允许多个Silverlight应用程序共享对zip文件的依赖关系,因此,您不必每次都将所有内容打包到XAP中,而只需下载一个应用程序的zip,并将其保存在其他应用程序的浏览器缓存中。

    至于xap文件的一般内容,有两个重要的位:

    1. foo.dll-项目的主程序集(根据需要重命名)
    2. appmanifest.xaml-描述应用程序的要求,例如所需的最低运行时版本、foo.dll的入口点以及其他设置,包括浏览器外设置,或者是否使用上述库缓存功能。

    其他的只是你的应用程序使用的内容。

        2
  •  2
  •   cofiem    14 年前

    如果您使用的是其他任何核心Silverlight程序集(如SilverLightToolkit),则Silverlight XAP文件可能很棘手。

    1. xap文件只是zip文件-打开一个文件查看。它们是自包含的,只要包含任何自定义/额外的DLL—当用户安装Silverlight时,将安装标准Silverlight程序集。

    2. 对于将要使用的每个程序集,.proj文件中都需要对dll的引用。也就是说,与其他项目类型不同,如果一个项目引用另一个项目,两个项目都需要引用任一项目使用的所有DLL。

    3. 如果你想的话,你应该可以把xap文件交给别人——但是Silverlight是为在浏览器中使用而设计的,所以你至少需要包括生成的测试页。最好也是最有用的是提供一个可公开访问的网页来承载您的Silverlight应用程序。

    Hth.

        3
  •  1
  •   slugster Joey Cai    14 年前

    尽管这个问题已经被回答了,但我也要把它扔进去,因为它还没有被提到。

    您提到您使用的是SL4——如果您的浏览器(OOB)用完了,那么您只需发送xap文件,然后使用 sllauncher.exe ( 2 )将其“安装”到客户机。作为安装的一部分,您还可以指定从何处获取更新,这对于发现错误或需求更改非常重要。