2010-08-29 54 views
2

问题:XAP文件是如何构建的?

  1. XAP文件是否自包含?
  2. 他们链接到我在项目中引用的所有DLL中吗?
  3. 如果我需要分发我的应用程序,我唯一需要做的就是交出一个XAP文件?

回答

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

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

  1. Foo.dll - 该项目的主要组件(更名为合适)
  2. AppManifest.xaml - 介绍您需要的应​​用程序,例如所需的最低运行时版本,Foo.dll的入口点以及其他设置,包括浏览器外设置,或是否使用上述库缓存功能。

其他任何内容都只是您的应用使用的内容。

2

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

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

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

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

HTH。

1

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

你提到您正在使用SL4 - 如果你正在运行了浏览器(OOB),那么你可以只船XAP文件,并使用sllauncher.exe2)“安装”到客户端机器。作为该安装的一部分,您还可以指定更新的来源,这对于发现错误或需求更改很重要。