Visual Studio Shell
Visual Studio shell 是 Visual Studio 中集成的主要代理。 shell 提供了必要的功能,使 VSPackages 能够共享通用服务。 由于 Visual Studio 的体系结构目标是在 VSPackages 中赋予主要功能,因此 shell 是一个框架,用于在其组件 VSPackage 之间提供基本功能并支持跨通信。
Shell 职责
shell 具有以下关键责任:
支持(通过 COM 接口)用户界面(UI)的基本元素。 其中包括默认菜单和工具栏、文档窗口框架或多文档界面(MDI)子窗口,以及工具窗口框架以及停靠支持。
维护正在运行的文档表(RDT)中所有当前打开的文档的运行列表,以便协调文档的持久性,并确保一个文档不能以多种方式或不兼容的方式打开。
支持命令路由和命令处理接口
IOleCommandTarget
。在适当时间加载 VSPackage。 延迟加载 VSPackage 是提高 shell 性能所必需的。
管理某些共享服务,例如 SVsShell,提供基本 shell 功能,并提供 SVsUIShell基本窗口功能。
管理解决方案 (.sln) 文件。 解决方案包含一组相关项目,类似于 Visual C++ 6.0 中的工作区 (.dsw) 文件。
跟踪 shell 范围的选择、上下文和货币。 shell 跟踪以下类型的项:
当前项目
当前项目项或 ItemID 当前 IVsHierarchy
“属性”窗口的当前选择或
SelectionContainer
控制命令、菜单和工具栏可见性的 UI 上下文 ID 或 CmdUIGuids
当前活动元素,例如活动窗口、文档和撤消管理器
驱动动态帮助的用户上下文属性
shell 还调解已安装的 VSPackages 和当前服务之间的通信。 它支持 shell 的核心功能,并使其可供 Visual Studio 中集成的所有 VSPackage 使用。 这些核心功能包括以下项:
关于 对话框和初始屏幕
“添加新项”和“添加现有项 ”对话框
类视图 窗口和 对象浏览器
“引用 ”对话框
“文档大纲 ”窗口
“动态帮助 ”窗口
查找 和 替换
在“新建”菜单上打开“项目”和“打开文件”对话框
“工具”菜单上的“选项”对话框
属性窗口
解决方案资源管理器
“任务列表”窗口
工具箱