Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 2010 VS扩展性体系结构(包API/Visual Studio库)_Visual Studio 2010_Visual Studio_Vs Extensibility_Vspackage_Mpf - Fatal编程技术网

Visual studio 2010 VS扩展性体系结构(包API/Visual Studio库)

Visual studio 2010 VS扩展性体系结构(包API/Visual Studio库),visual-studio-2010,visual-studio,vs-extensibility,vspackage,mpf,Visual Studio 2010,Visual Studio,Vs Extensibility,Vspackage,Mpf,最近,我发现上面显示的Visual Studio可扩展性平台图表来自microsoft 大多数事情我都很清楚。但是,我想知道包API和VSL(VisualStudioLibrary) 我试图找到更多,但找不到任何信息 我不太明白的事情: 软件包API到底是什么? VSL到底是什么? -InteropAssemblies/VSL与包API之间的关系是什么?InteropAssemblies是否包装对包API的访问? 在实现本机包时,为什么要使用VSL?有什么好处 有人有关于这些主题的更多信息吗?或

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

大多数事情我都很清楚。但是,我想知道包API和VSL(VisualStudioLibrary)

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

我不太明白的事情:
软件包API到底是什么?
VSL到底是什么?
-InteropAssemblies/VSL与包API之间的关系是什么?InteropAssemblies是否包装对包API的访问?
在实现本机包时,为什么要使用VSL?有什么好处

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

包API是Visual Studio SDK中公开的COM接口集。这些是VisualStudioShell的原始扩展接口。几乎所有接口都以“IVs”开头(例如IVsShell、IVsHierarchy、IVsSolution等)。如果安装了Visual Studio 2010 SDK,请查看%SDKInstall%\VisualStudioIntegration\Common\IDL的内容以了解更多详细信息

您可以将VSL看作是一个受ATL启发的框架,用于创建本机VisualStudio包。如果从包含的模板创建C++ VisualStudio包,输出将使用VSL。它的优点是可以最大限度地减少为给定功能编写的“管道”代码的数量(例如,添加新的工具窗口)

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


对于更多指向文档、博客、文章等的链接,这是一个很好的起点。。。这应该会对你有所帮助。

我知道我在回答一个老问题,但以下书中的内容对我有所帮助,这补充了亚伦·马丁的公认答案:

它专门讨论了依赖ATL的VisualStudio库。这本书很旧,涵盖了一些过时的功能,如宏和外接程序,但它也描述了一些新概念,如托管包框架,并给出了有关VisualStudio内部的详细信息