我一直在阅读这篇文章: http://www.codeproject.com/KB/silverlight/MEFDynamicLoading.aspx 其中描述了如何使用MEF动态下载XAP。它声明应该将copy local set引用为false来引用共享库。 如果'host'xap也将copy local set设置为true,那么这很有用,但这不是我想支持的场景。 我的应用程序具有各种树形结构。同一级别的项目通常(但不总是)共享大(可能高达1MB)的依赖项。 我想要的是只在需要时才加载这些依赖项。显而易见的事情就是将整个本地设置为true,但我希望确保依赖性只下载一次。即使用户随后导航到需要依赖项的应用程序的其他区域。
最后几点: 我希望能够提前加载这些依赖项。即,当我知道应用程序没有做任何有价值的事情时。 我还将利用http://www.wintellect.com/CS/blogs/jlikness/archive/2010/05/25/silverlight-out-of-browser-dynamic-modules-in-offline-mode.aspx中描述的离线目录来确保它在浏览器之外按预期工作。
答案 0 :(得分:1)
老实说,如果您不愿意在主XAP中使用本地引用,那么实现此目的的唯一方法是破解清单并自行解析它而不使用部署目录。您需要基本上使用我在脱机目录中公开的方法,并保留已加载的引用字典。然后你可以复制本地的所有内容,代码将检查并只加载引用的程序集,如果它之前没有加载。