0

我有一个使用 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"}

有什么我可以做的吗?

4

1 回答 1

1

我认为 MVVMLight 现在需要 CommonServiceLocation nuget 包。这可能会有所帮助:Microsoft.Practices.ServiceLocation 来自哪里?

于 2013-03-19T06:53:10.220 回答