XAP文件是如何构建的?

时间:2010-08-29 00:10:27

标签: silverlight-4.0 distribution

问题:

  1. XAP文件是否自包含?
  2. 他们是否链接了我在项目中引用的所有DLL?
  3. 如果我需要分发我的应用程序,我所要做的就是将某人作为XAP文件吗?

3 个答案:

答案 0 :(得分:3)

  1. 默认情况下,是的。有关替代方案,请参阅答案3.
  2. 默认情况下,除运行时安装的核心DLL外;它将包含SDK,Toolkit,第三方控件或您自己的库中的任何内容。
  3. 默认情况下,是的。但是,从Silverlight 3开始,有一个选项可以将某些程序集(例如SDK中的任何程序集)打包到单独的ZIP文件中,这些文件是单独下载的。在Visual Studio中,在项目属性中查找名为“通过使用应用程序库缓存减少XAP大小”的复选框。此选项切换是否创建/使用ZIP文件。启用ZIP选项允许多个Silverlight应用程序共享ZIP文件的依赖关系,因此您不必每次都将所有内容打包到XAP中,而是只为一个应用程序下载ZIP,并将其保存在浏览器缓存中以供其他应用程序使用。 / LI>

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

    1. Foo.dll - 项目的主程序集(根据需要重命名)
    2. AppManifest.xaml - 描述您的app的要求,例如所需的最小运行时版本,Foo.dll的入口点以及其他设置,包括浏览器外设置,或者是否使用上面提到的库缓存功能
    3. 其他任何内容都只是您的应用使用的内容。

答案 1 :(得分:2)

如果您使用其他核心Silverlight程序集(例如SilverlightToolkit),Silverlight XAP文件可能会非常棘手。

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

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

  3. 如果需要,您应该能够将某个XAP文件交给某人 - 但Silverlight旨在用于浏览器,因此您至少需要包含生成的测试页。最好,最有用的是提供一个可公开访问的网页,用于托管您的silverlight应用程序。

  4. HTH。

答案 2 :(得分:1)

即使这个问题已经得到解答,我也会把这个问题抛出来,因为它还没有被提及。

您提到您正在使用SL4 - 如果您的浏览器用完(OOB),那么您可以发送XAP文件,并使用sllauncher.exe2)将其“安装”到客户端机器。作为该安装的一部分,您还可以指定更新的来源,这对于发现错误或需求发生变化非常重要。