答案 0 :(得分:1)
一个建议是使用Silverlight的程序集文件缓存选项。可以找到文档和walkthru here。应用程序的总体大小不会改变,但是对于返回用户而言,最终用户体验可能会随着浏览器缓存各个程序集而得到改善。
答案 1 :(得分:0)
通常,对于较大的复合应用程序,您需要下载一个主机应用程序,它接受DLL的“命中”(即如果您使用的是x,y和z,它们将包含在主机中)。另一种选择是轻量级的介绍性XAP,然后在后台下载其他的。
无论哪种方式,关键是要制定项目相关的策略,以便只包含一次DLL。一旦有了包含必要DLL的XAP文件,加载到同一应用程序中的任何其他XAP都可以将引用设置为“copy-local = false”。这意味着它仍然会引用System.Windows.Controls.Data.dll,但实际上并不会在生成XAP中保留副本。
同样,如果您希望减少初始化的占用空间和加载时间,您可能会:启动Application.xap并为用户提供导航,启动画面等。它会立即动态加载“库” .xap“包含后台中的依赖DLL(控件等),最后任何其他”Module1.xap“和”Module2.xap“只会引用DLL但将本地复制设置为false。
我在这里有一个深入的源代码示例: http://csharperimage.jeremylikness.com/2010/06/advanced-silverlight-applications-using.html