最近我在microsoft上找到了上面显示的Visual Studio可扩展性平台图表。
我对大多数事情都很清楚。但是,我想知道Package API和VSL(Visual Studio Library)。
我试图找到更多,但无法找到任何信息。
我不太了解的事情:
- Package API究竟是什么?
- VSL究竟是什么?
- InteropAssemblies / VSL和Package API之间有什么关系? InteropAssemblies是否包装对Package API的访问?
- 为什么在实现本机包时应该使用VSL?有什么好处?
是否有人有关于这些主题的更多信息或者有人知道某些资源吗?
答案 0 :(得分:2)
“Package API”是Visual Studio SDK中公开的COM接口集。这些是Visual Studio shell的原始可扩展性接口。几乎所有接口都以'IVs'开头(例如IVsShell,IVsHierarchy,IVsSolution等......)如果安装了Visual Studio 2010 SDK,请查看%SDKInstall%\ VisualStudioIntegration \ Common \ IDL的内容更多细节。
您可以将VSL视为用于创建本机Visual Studio包的ATL启发框架。如果从包含的模板创建C ++ Visual Studio包,则输出将使用VSL。它的优点是它可以最大限度地减少为特定功能编写的“管道”代码量(例如,添加一个新的ToolWindow)。
Interop程序集用于.NET / COM互操作性。它们为托管(C#/ VB / F#)代码提供了正确的方法签名和结构,以便调用Package API。
Visual Studio Extensibility center on MSDN是一个很好的起点,可以获得更多文档,博客,文章等链接...这应该可以帮助您。
答案 1 :(得分:1)
我知道我正在回答一个老问题,但是下本书中的内容对我有所帮助,这增加了亚伦·马滕(Aaron Marten)接受的答案above:
Visual Studio 2010 and .NET 4 Six-in-One (Novak) [2010]
它专门讨论了依赖ATL的Visual Studio库。这本书很旧,涵盖了宏和外接程序等过时的功能,但是它也描述了新的概念,例如 Managed Package Framework ,并且还提供了有关Visual Studio内部结构的详细信息。 >