7

MSDN 扩展平台描述

最近我发现上面显示的来自微软的 Visual Studio 可扩展性平台图表。

大多数事情对我来说都很清楚。但是,我想知道 Package API 和 VSL(Visual Studio 库)。

我试图找到更多,但找不到任何信息。

我不太明白
的事情:-Package API 到底是什么?
- VSL 到底是什么?
- InteropAssemblies/VSL 和 Package API 之间有什么关系?InteropAssemblies 是否包装了对 Package API 的访问?
- 为什么要在实现原生包时使用 VSL?有什么好处?

有没有人有更多关于这些主题的信息,或者有人知道一些资源?

4

2 回答 2

3

“包 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)。

互操作程序集用于 .NET/COM 互操作性。它们为托管 (C#/VB/F#) 代码提供正确的方法签名和结构,以调用包 API。

MSDN 上的Visual Studio 可扩展性中心是一个很好的起点,可以获取更多指向文档、博客、文章等的链接……这应该可以帮助您。

于 2011-04-01T13:46:58.540 回答
1

我知道我在回答一个老问题,但以下书中的内容对我有所帮助,这增加了 Aaron Marten上面接受的答案:

Visual Studio 2010 和 .NET 4 六合一 (Novak) [2010]

它专门讨论了依赖 ATL 的 Visual Studio 库。这本书很旧,涵盖了宏和插件等过时的功能,但它也描述了新概念,例如托管包框架,还提供了有关 Visual Studio 内部的详细信息。

在此处输入图像描述

于 2020-06-27T13:12:44.610 回答