Visual Studio 2010 SDK 附带了许多程序集,例如 Microsoft.VisualStudio.Text.Data 和 Microsoft.VisualStudio.Text.UI,它们只是存根。要为 Visual Studio 编写扩展,请引用这些程序集,但将引用的“复制本地”和“精确版本”属性设置为 false。当您的扩展加载到 Visual Studio 中时,引用将绑定到 Visual Studio 之前加载的这些程序集的内部实现。
我想提供一个新的 MEF 导出组件,充当其他 MEF 包可以使用的 Visual Studio 服务
[Import]
。要使用该服务,其他组件需要引用我的包 - 但我更喜欢它们引用存根,这样我就可以更改服务的内部实现,而不会破坏引用它的其他包。如何提供一个“存根”程序集,其中包含来自某个任意程序集的公开可见的 API 组件,这样,如果您引用该存根,它将在运行时与提供的实现无缝协作?
我通过创建两个程序集解决了这个问题:
[Export]
。[Export]
。使用我的功能的人只需参考前者,并将“复制本地”和“精确版本”设置为 false。