我有一个使用 MEF 从库中获取类的应用程序。我定义了接口 ISapphirePlugin,两个库都有实现这个接口的类,它们应该在应用程序启动时加载。在我迁移到 MVVM Light 之前,一切正常,但由于 MVVM Light 库也在我的应用程序目录中,所以我的 MEF 代码失败了。所有库都与我的可执行文件位于同一文件夹中。
var catalog = new DirectoryCatalog(".");
var container = new CompositionContainer(catalog);
IEnumerable<ISapphirePlugin> modules = container.GetExportedValues<ISapphirePlugin>();
抛出一个 ReflectionTypeLoadException,加载器异常说:
无法加载文件或程序集“Microsoft.Practices.ServiceLocation,Version=1.0.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35”或其依赖项之一。系统找不到指定的文件。":"Microsoft.Practices.ServiceLocation, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"}
有什么我可以做的吗?