将菜单添加到 Visual Studio 菜单栏
本演练演示如何向 Visual Studio 集成开发环境(IDE)的菜单栏添加菜单。 IDE 菜单栏包含“文件”、“编辑”、“视图”、“窗口”和“帮助”等菜单类别。
在向 Visual Studio 菜单栏添加新菜单之前,请考虑命令是否应放置在现有菜单中。 有关命令放置的详细信息,请参阅 Visual Studio 的菜单和命令。
菜单在 项目的 .vsct 文件中声明。 有关菜单和 .vsct 文件的详细信息,请参阅 命令、菜单和工具栏。
通过完成本演练,可以创建一个名为“测试菜单”的菜单,其中包含一个命令。
注意
从 Visual Studio 2019 开始,扩展提供的顶级菜单放置在“ 扩展 ”菜单下。
创建具有自定义命令项模板的 VSIX 项目
创建名为
TopLevelMenu
. 的 VSIX 项目。 可以通过搜索“vsix”在“新建项目”对话框中找到 VSIX 项目模板。 有关详细信息,请参阅 使用菜单命令创建扩展。项目打开时,添加名为 TestCommand 的自定义命令项模板。 在“解决方案资源管理器”中,右键单击项目节点并选择“添加”>“新建项”。 在 “添加新项 ”对话框中,转到 Visual C# /Extensibility 并选择“ 命令”。 在 窗口底部的“名称 ”字段中,将命令文件名更改为 TestCommand.cs。
在 IDE 菜单栏上创建菜单
在解决方案资源管理器中,打开 TopLevelMenuPackage.vsct。
文件末尾有一个
<Symbols>
包含多个<GuidSymbol>
节点的节点。 在名为guidTopLevelMenuPackageCmdSet>的节点中,添加新符号,如下所示: <IDSymbol name="TopLevelMenu" value="0x1021"/>
在
<Commands>
节点中创建一个空<Menus>
节点,就在前面<Groups>
。 在节点中添加<Menus>
<Menu>
节点,如下所示:<Menus> <Menu guid="guidTopLevelMenuPackageCmdSet" id="TopLevelMenu" priority="0x700" type="Menu"> <Parent guid="guidSHLMainMenu" id="IDG_VS_MM_TOOLSADDINS" /> <Strings> <ButtonText>Test Menu</ButtonText> </Strings> </Menu> </Menus>
guid
菜单的和id
值指定命令集和命令集中的特定菜单。guid
父菜单的和id
值将菜单放置在包含“工具和加载项”菜单的 Visual Studio 菜单栏部分。该
<ButtonText>
元素指定文本应出现在菜单项中。在
<Groups>
部分中,找到<Group>
并<Parent>
更改元素以指向刚刚添加的菜单:<Groups> <Group guid="guidTopLevelMenuPackageCmdSet" id="MyMenuGroup" priority="0x0600"> <Parent guid="guidTopLevelMenuPackageCmdSet" id="TopLevelMenu"/> </Group> </Groups>
这使得新菜单的组部分。
在
<Buttons>
部分中,找到<Button>
节点。 然后,在节点中<Strings>
,将<ButtonText>
元素更改为Test Command
。请注意,Visual Studio 包模板已
Button
生成其父设置为MyMenuGroup
的元素。 因此,此命令将显示在菜单上。
生成并测试扩展
生成项目并启动调试。 应显示实验实例的实例。
实验实例中的“扩展”菜单应包含“测试菜单”菜单。
在 “测试菜单” 菜单上,选择“ 测试命令”。
消息框应显示并显示消息“TestCommand Inside TopLevelMenu.TestCommand.MenuItemCallback()”。