XML 命令表 (.vsct) 文件描述命令项目布局和外观 VSPackage 中。 命令项目包括按钮、组合框、菜单、命令项目的工具栏和组。 本主题描述 XML 命令表文的,它们如何影响命令项目和菜单以及如何创建它们。
命令、菜单、组和 .vsct 文件
.vsct 文件在命令、菜单和命令组周围进行组织。 在 .vsct 文件的 XML 标记与其他关联的项目一起表示这些项中的每个元素,例如命令按钮、命令安排和位图。
当您通过运行 Visual Studio 包模板创建新的 VSPackage 时,模板生成所需的元素 .vsct 文件菜单命令的,具体取决于选择工具窗口或自定义编辑器,。 然后可以修改此 .vsct 文件与给定 VSPackage 的要求。 有关如何修改 .vsct 文件的示例,请参见。 命令、菜单和工具栏的演练的示例。
若要创建新,请为空 .vsct 文件,请参见 如何:创建一个。Vsct 文件。 一旦创建,需要添加 XML 元素、特性和值到文件描述命令项目格式。 有关详细的 XML 架构,请参见 VSCT XML 架构参考。
在 .ctc 和 .vsct 文件之间的差异
在 XML 标记后面的含义。 .vsct 文件与位于现在已弃用 .ctc 文件格式时,其实现有点儿不同的。
新的extern标记是您引用要生成的位置其他 .h 文件,如用于 Visual Studio 工具栏上的。
当 .vsct 文件支持 /include 语句时,, .ctc 文件,它还具有新 AMP_LTimport> 元素的功能。 但差别是, /include 将 所有 信息,但是, AMP_LTimport> 将仅名称。
当 .ctc 文件要求您定义预处理器指令的头文件时,但对于 .vsct 文件是必需的。 相反,请将指令在符号表中,位于Symbol元素,位于 .vsct 文件的底部。
.vsct 文件。 <Annotation> 标记的功能,允许您将任何信息愿意,例如说明甚至图片。
值存储为属性在项目。
可以单独存储命令标记或堆叠。 Intellisense,但是,在堆叠命令标志不起作用。 有关标志的更多信息,请参见 Command Flag 元素。
您可以指定多个类型,如拆分下拉菜单、 combos 等。
GUID 不验证。
每个 UI 元素具有表示文本显示与它的字符串。
父是可选的。 如果省略,后者使用值组 “未知”。
图标参数是可选的。
位图部分--和 .ctc 文件,除此之外,您尽可能通过将在编译时 vsct.exe 编译器拉入的 href 立即指定文件名。
ResID--可以使用旧位图资源 ID 和仍然工作方式与在 .ctc 文件。
HRef--允许您为位图资源指定文件名的新方法。 假定,使用任何,因此,您可以省略了使用的部分。 编译器将首先搜索局部资源文件,然后在所有 net 共享和 /I 开关定义的任何资源。
Keybinding--您不必再指定仿真程序。 如果您指定了,则编译器假定,编辑器和模拟器相同。
Keychord--删除了。 新的格式是 Key1, Mod1, Key2, Mod2。 可以指定字符、十六进制或 VK 常数。
新编译器, vsct.exe,生成 .ctc 和 .vsct 文件。 旧 ctc.exe 编译器,但是,将无法识别也不会编译 .vsct 文件。
可以使用 vsct.exe 编译器将现有的 .cto 文件转换为 .vsct 文件。 有关这方面的更多信息,请参见如何:创建一个。从现有的 Vsct 文件。Cto 文件。
.vstc 文件元素
命令表具有以下层次结构和组件:
CommandTable 元素 —表示所有命令组、菜单和菜单与 VSPackage。
Extern 元素 —引用要 .vstc 文件合并的任何外部 .h 文件。
Include 元素 —引用任何附加头 (.h) 要与 the.vstc 文件一起编译的文件。 .vstc 文件可能包含定义菜单命令、组和菜单 IDE 或另一个 VSPackage 提供的常数 .h 文件。
Commands 元素 —表示可以执行的所有各指令。 每个命令具有以下四个子元素:
Menus 元素 —表示所有菜单和工具栏在 VSPackage。 菜单是命令组的容器。
Groups 元素 —委托所有 VSPackage 的组。 组是各个命令的集合。
Buttons 元素 —表示所有命令按钮和菜单项在 VSPackage。 按钮是可以与命令的可视控件。
Bitmaps 元素 —表示所有的位图在 VSPackage 中的按钮。 位图是在旁边将显示或在命令按钮的图片,具体取决于上下文。
CommandPlacements 元素 —指示在 VSPackage 中菜单应放置各指令的其他位置。
VisibilityConstraints 元素 —在某些上下文仅指定命令是否始终显示,或者,例如,当一个特定的对话框或窗口中显示时。 具有此元素的值的菜单和命令将只显示指定的上下文是活动的。 默认行为是始终显示命令。
KeyBindings 元素 —指定命令的所有键绑定。 即必须以执行命令的一个或多个组合键,例如 CTRL+S。
UsedCommands 元素 —通知 Visual Studio 环境,尽管该指定的命令由其他代码实现,这样,在当前 VSPackage 处于活动状态时,它提供命令实现。
Symbols Element —在包包含符号名称和 GUID ID 的所有命令。
. Vsct 文件设计准则
成功设计 .vsct 文件,请遵循下列准则。
命令可以在组中只中,组在菜单上只能放置,并且, menu 可以在组中只放置。 仅菜单在 IDE 中,组的实际上,其中显示了命令不是。
子菜单不直接分配给菜单,但是,必须分配到组,又分配给菜单。
使用它们定义的指令,的父字段命令、子菜单和组可以分配给一个权组或菜单。
组织命令表通过在指令的父字段都具有很高的限制。 定义对象的指令只能接受一个父级参数。
重新使用命令,组或子菜单需要使用新的指令用自己的 GUID:ID 创建对象的新实例对。
每 GUID:ID 对必须是唯一的。 重用,例如,放置了在菜单上,工具栏,或者在上下文菜单中的命令,由 IOleCommandTarget 接口处理。
命令和子菜单还可以分配给多个组,使用 Commands 元素,并且,组分配用到多个菜单。
. Vsct 文件说明
如果对 .vsct 文件所做的任何更改,在同时在本机附属 DLL 后对其进行编译并将其放在,应运行 devenv.exe /setup /nosetupvstemplates。 执行此强制在实验注册表指定的 VSPackage 资源将重新读取和描述要重新生成 Visual Studio 的内部数据库。
在开发过程中,将创建和注册在可能会在 IDE 的 scrum 的混乱的实验注册表项多个 VSPackage 项目是可能的。 若要修复此问题,可以重置实验项添加到默认设置取消任何注册的 Vspackage 就可以对 IDE 的任何更改。 若要重置实验项,请使用随 Visual Studio SDK 的 vsregex.exe 工具。 此工具位于工具 \bin or tools\bin\x86 folder of the VisualStudioIntegration 文件夹 (例如, C: \Program Files\Visual Studio 2010 SDK\VisualStudioIntegration\Tools\Bin \ vsregexe.exe)。 运行工具通过使用 10.0 是 Visual Studio 的版本所使用的命令行 vsregex GetOrig 10.0 Exp,并且, Exp 是后缀追加到版本获取对实验注册表项。 HKEY_CURRENT_USER下。
确保移除所有已注册的 Vspackage 通常不安装的 vsregex.exe 工具从实验项与 Visual Studio。
请参见
概念
其他资源
Command Table Configuration (.ctc) Files