MEF在VSIX编辑器扩展中看不到其他项目中的依赖项

时间:2018-09-20 08:42:30

标签: c# mef vsix

我正在编写Visual Studio编辑器扩展。在我的解决方案中,有两个项目:主VSIX项目(第一个)和类库项目(第二个)。在第二个项目中,有几个依赖项已导出为MEF,并在第一个项目中使用。但是在运行时,MEF无法解析放置在第二个项目中的依赖项。 我该如何解决这个问题?

在其他情况下(简单的是-控制台应用程序),我会这样做:

var assemplies = AppDomain.CurrentDomain.GetAssemblies()
    .Where(x => x.Location.Contains(AppDomain.CurrentDomain.BaseDirectory));

var compositionHost = new ContainerConfiguration()
    .WithAssemblies(assemplies)
    .CreateContainer();
var compositionContext = compositionHost.GetExport<CompositionContext>();
var exporter = new Export<CompositionContext>(compositionContext, () => { });

var someService = exporter.Value.GetExport<ISomeService>("First");

但是如何解决我无法理解的Visual Studio编辑器扩展问题

1 个答案:

答案 0 :(得分:0)

此问题已解决。 如果有人感兴趣,则只需将“ Microsoft.VisualStudio.MefComponent”类型的资产添加到vsixmanifest的必要程序集即可。