【发布时间】:2011-08-15 16:11:58
【问题描述】:
我有一个基于 MEF 的应用程序,它使用适配器来处理文件。它使用配置文件来确定要监视的目录以及使用哪个适配器来处理每种类型的文件。插件采用实现通用接口的 .dll 形式。
每个 .dll 都需要自己的一组依赖库。例如,plugin1.dll 可能需要使用 apilbrary.dll 和 xmllibrary.dll。也有可能在以后我可能想要添加 plugin2.dll,并且 plugin2.dll 也可能使用 xmllibrary.dll。这些依赖库会定期更新,所以我不能指望 plugin2.dll 使用与 plugin1.dll 中使用的完全相同版本的 xmllibrary.dll。
我想将每个插件编译成一个 .dll 文件,该文件在其自身内部不可见地包含其所有依赖库,这似乎是解决此问题的一种方法。或者,我想弄清楚每个 .dll 文件如何在子文件夹中查找其依赖库,我相信这也会减少版本冲突的可能性。或者,我什至没有考虑过这个问题的简单解决方案(这总是非常非常有可能)。
有什么想法吗?
【问题讨论】: