如何通过删除常见文件来优化silverlight XAP文件的大小?

时间:2011-05-18 16:55:16

标签: silverlight deployment xap

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

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

谢谢,

3 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:1)

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

答案 2 :(得分:1)

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