1

我有一堆常见的第三方 dll,我在多个银灯项目中使用它们。每个都使用第三方 dll 的相同副本生成自己的 XAP 文件。我想知道,只有当本地缓存 dll 与以前加载的其他 XAP 使用的常用 dll 不同时,是否可以将常见的第三方 dll 分离出来并加载?

换句话说,我的想法是,当我第一次进入一个新的silverlight页面时,它会加载应用程序XAp和Common XAP文件,从那个silverlight应用程序,我转到另一个silverlight页面,它又加载另一个XAP但是这一次,它不会加载公共 dll XAP,因为它已经被第一次 XAP 加载加载了。

谢谢,

4

3 回答 3

3

如果第三方 DLL 做得好,它们会附带一个 .extmap.xml 文件,该文件正好允许这种情况。但是您需要通过选中 Silverlight 项目中的“使用应用程序库缓存来减少 XAP 大小”选项来打开它。有关其工作原理的更多详细信息,请参阅http://msdn.microsoft.com/en-us/library/dd833069(VS.95).aspx

于 2011-05-19T00:16:37.950 回答
1

我认为更理想的解决方案是尝试使用ComponentOne XAPOptimizer 之类的东西来缩小 XAP/Zip 文件。您的方法的问题在于,您在项目之间引入了依赖关系,如果一个或多个项目发生变化,这些依赖关系将无法管理。 是降低 XAP 文件大小的策略的好资源。

于 2011-05-18T19:37:25.977 回答
1

我相信您有一个主 XAP,它可以调用加载其他 XAP,对吗?您所要做的就是,在每个 DLL 的属性中,将属性“复制到本地”更改为 FALSE,除了在您的主 XAP 上。当用户下载主 XAP 时,该 DLL 将可供所有从属 XAP 使用。

于 2011-08-25T15:52:31.700 回答