由于缺少另一个组件,无法通过MEF加载组件

时间:2013-06-24 15:12:53

标签: .net .net-4.0 mef

问题:

我有两个项目。第一个名为 Studio ,第二个名为 Worker ,它是一个类库。 Worker 项目引用了一些第三方程序集,如Ecng.Common,Ecng.Data等。

当我尝试通过MEF在 Studio 中加载 Worker 时,MEF会抛出异常:

  

无法找到文件或程序集Ecng.Transactions

但是, Worker 中没有针对Ecng.Transactions的项目引用。工人没有它工作。

我需要做些什么来解决这个问题?

修改1:

var catalog = new AggregateCatalog(); 

foreach (var nameAndPath in robotsDirectory) 
{ 
  catalog.Catalogs.Add(new DirectoryCatalog(nameAndPath.Value)); 
} 

var container = new CompositionContainer(catalog);

container.ComposeParts(this); // Here i have Exception 

1 个答案:

答案 0 :(得分:0)

Worker引用的任何程序集是否参考Ecng.Transactions?您可以使用DotPeek或Visual Studio对象资源管理器等工具来解决这个问题

你什么时候收到错误?

  1. 虽然MEF正在解析MEF Export标签的Worker程序集?或
  2. 当您尝试在Worker中加载特定类时?