VS可扩展性架构(包API/ Visual Studio库)

7

MSDN可扩展性平台描述

最近,我从微软的 Visual Studio Extensibility Platform 图表中发现了上述展示。

大多数内容对我来说很清楚。但是,我想知道 Package API 和 VSL(Visual Studio Library)是什么。

我试图寻找更多信息,但没有找到任何信息。

我不是很理解的问题:
- Package API 究竟是什么?
- VSL 究竟是什么?
- InteropAssemblies/VSL 与 Package API 之间有何关系?InteropAssemblies 是否包装了对 Package API 的访问?
- 在实现本地包时,为什么要使用 VSL?有哪些好处呢?

是否有人对这些主题有更多信息或知道一些资源?

2个回答

3
"Package API" 是 Visual Studio SDK 中公开的一组 COM 接口。这些接口是用于 Visual Studio shell 的原始可扩展性接口。几乎所有接口都以“IVs”开头(例如 IVsShell、IVsHierarchy、IVsSolution 等)。如果您安装了 Visual Studio 2010 SDK,请查看 %SDKInstall%\VisualStudioIntegration\Common\IDL 的内容以获取更多详细信息。
您可以将 VSL 视为一个受 ATL 启发的框架,用于创建本机 Visual Studio 包。如果您从包含的模板中创建 C++ Visual Studio 包,则输出将使用 VSL。其优点在于,它最小化了您需要为给定功能编写的“管道”代码量(例如添加新的 ToolWindow)。
Interop Assemblies 用于 .NET/COM 互操作性。它们为托管代码(C#/VB/F#)调用 Package API 提供正确的方法签名和结构。 MSDN 上的 Visual Studio 扩展中心 是寻找更多文档、博客、文章等的好地方,这些资源应该会对您有所帮助。

1
我知道我正在回答一个旧问题,但以下书籍中的内容对我有所帮助,这补充了Aaron Marten接受的答案above: Visual Studio 2010 and .NET 4 Six-in-One (Novak) [2010] 它专门讨论了Visual Studio库依赖于ATL。该书已经过时,并涵盖了诸如宏和插件之类的过时功能,但它也描述了新概念,例如托管包框架,并提供了有关Visual Studio内部的详细信息。

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接