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

| 我有一堆常见的第三方dll,可在多个Silver Light项目中使用。每个人都使用第三方dll的相同副本来产生自己的XAP文件。我想知道,仅当本地缓存dll与先前加载的其他XAP使用的通用dll不同时,才有可能将普通第三方dll分离出来并加载吗? 换句话说,我的想法是,当我第一次进入新的Silverlight页面时,它将加载该应用程序XAp和Common XAP文件,从该Silverlight应用程序中,我转到另一个Silverlight页面,该页面又加载了另一个XAP但是这一次,它将不会加载通用DLL XAP,因为它已经由第一次XAP加载进行了加载。 谢谢,     
已邀请:
我认为一个更理想的解决方案是尝试使用ComponentOne XAPOptimizer之类的工具来最小化XAP / Zip文件。您的方法存在的问题是,您正在引入项目之间的依赖关系,如果一个或多个项目发生更改,则无法以任何方式对其进行管理。对于减少XAP文件大小的策略来说,这是一个很好的资源。     
如果第三方DLL完成得很好,它们将带有一个.extmap.xml文件,该文件正是用于这种情况的。但是您需要通过在Silverlight项目中选中“使用应用程序库缓存来减少XAP大小”选项来打开它。有关此工作原理的更多详细信息,请参见http://msdn.microsoft.com/zh-cn/library/dd833069(VS.95).aspx。     
我相信您有一个主XAP,该XAP可以调用以加载其他XAP,对吗? 您要做的就是在每个DLL的属性中,将属性“复制到本地”更改为FALSE,但在主XAP上除外。 当用户下载主XAP时,DLL将可用于所有从属XAP。     

要回复问题请先登录注册