首页 > 解决方案 > 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 编辑器扩展的这个问题

标签: c#mefvsix

解决方案


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


推荐阅读