MEF reflectiontypeloadeexception自从迁移到MVVMLight

本文关键字:MVVMLight 迁移 reflectiontypeloadeexception MEF | 更新日期: 2023-09-27 18:04:41

我有一个使用MEF从库中获取类的应用程序。我定义了接口ISapphirePlugin,两个库有实现这个接口的类,它们应该在应用程序启动时加载。在我迁移到MVVM Light之前,一切都很好,但是由于MVVM Light库也在我的应用程序目录中,我的MEF代码失败了。所有的库都在我的可执行文件所在的文件夹中。

var catalog = new DirectoryCatalog(".");
var container = new CompositionContainer(catalog);
IEnumerable<ISapphirePlugin> modules = container.GetExportedValues<ISapphirePlugin>();

抛出一个reflectiontypeloadeexception,加载器异常说:

无法加载文件或程序集" Microsoft.Practices.ServiceLocation "版本=1.0.0.0,文化=中性,PublicKeyToken=31bf3856ad364e35' or它的一个依赖项。系统找不到文件指定。":"Microsoft.Practices。= 1.0.0.0 ServiceLocation,版本,文化=中立,都必须31 bf3856ad364e35"}

有什么我能做的吗?

MEF reflectiontypeloadeexception自从迁移到MVVMLight

我认为MVVMLight现在需要CommonServiceLocation核包。这可能会有所帮助:Microsoft.Practices.ServiceLocation从何而来?