自迁移到MVVMLight以来MEF ReflectionTypeLoadException

时间:2013-03-19 06:44:19

标签: c# mef mvvm-light

我有一个使用MEF从库中获取类的应用程序。我定义了接口ISapphirePlugin,两个库都有实现此接口的类,它们应该在应用程序启动时加载。在我迁移到MVVM之前,一切工作正常,但由于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“}

我能做些什么吗?

1 个答案:

答案 0 :(得分:1)

我认为MVVMLight现在需要CommonServiceLocation nuget包。这可能会有所帮助:Where does Microsoft.Practices.ServiceLocation come from?