我正在构建自定义VS2015扩展(VSIX包)。我的主要任务是对解决方案资源管理器进行操作,如下所示:
我找到了一些样本,其中大多数使用了三种常见策略中的一种:
EnvDTE.Solution
,EnvDTE.Project
等等。EnvDTE.UIHierarchy
之类。Microsoft.VisualStudio.Shell.Interop.IVsSolution
和IVsHierarchy
我可以看到第一个在覆盖情景方面最差。我无法弄清楚的是最后两个之间的区别。我应该考虑哪一项任务?他们背后的概念是什么?
答案 0 :(得分:-1)
它们都是com解决方案对象实现的接口。查看msdns以查看方法的不同。
https://msdn.microsoft.com/en-us/library/microsoft.visualstudio.shell.interop.ivssolution.aspx
https://msdn.microsoft.com/en-us/library/microsoft.visualstudio.shell.interop.ivshierarchy.aspx
UIHierarchy是工具窗口的接口(任何带有节点的窗口,而不仅仅是解决方案资源管理器),它具有层次结构,来自VSSDK,而IVs接口直接来自互操作并表示视图中的实际项目。
您所说的IVsSolution是最直接的界面。所有IVsSolutions也都是IVsHierarchy,但解决方案资源管理器中的任何节点都是层次结构,但显然不是解决方案。