我在 silverlight 中使用 MEF 从辅助 xap 文件中动态加载一些插件。这个辅助 XAP 文件是从一个引用各种插件项目的项目构建的,所有这些都是针对已经在主 xap 文件中的 dll 构建的。
因此,我想要非常明确地控制哪些 dll 最终出现在这个辅助 xap 中。包含主 xap 文件中的任何 dll 都是多余的(并且还会导致 MEF 重组出现问题)。但 Visual Studio 似乎坚持包含各种依赖 dll,即使 CopyLocal 属性仅设置为 True 以引用插件项目。
到目前为止,我发现唯一可行的方法是在构建辅助 xap 的顶级项目中添加对探测始终包含的 dll 的显式引用,并在引用属性中将 CopyLocal 设置为 False。但是随着依赖关系的变化,这很脆弱。
我想错了吗?我是否应该为每个插件 dll 构建一个单独的 xap(在这种情况下,将所有引用的 CopyLocal 设置为 false 似乎可行)?