将菜单添加到 Visual Studio 菜单栏
适用范围:Visual Studio
Visual Studio for Mac
Visual Studio Code
本演练演示如何将菜单添加到 Visual Studio 集成开发环境的菜单栏 (IDE) 。 IDE 菜单栏包含菜单类别,例如“文件”、“编辑”、“视图”、“窗口”和“帮助”。
在将新菜单添加到 Visual Studio 菜单栏之前,请考虑是否应将命令放置在现有菜单中。 有关命令放置的详细信息,请参阅 Visual Studio 的菜单和命令。
菜单在项目的 .vsct 文件中声明。 有关菜单和 .vsct 文件的详细信息,请参阅 命令、菜单和工具栏。
通过完成本演练,可以创建一个名为 “测试菜单” 的菜单,其中包含一个命令。
注意
从 Visual Studio 2019 开始,扩展提供的顶级菜单放置在“ 扩展 ”菜单下。
先决条件
从 Visual Studio 2015 开始,不要从下载中心安装 Visual Studio SDK。 它作为可选功能包含在 Visual Studio 安装程序中。 也可稍后安装 VS SDK。 有关详细信息,请参阅 安装 Visual Studio SDK。
创建具有自定义命令项模板的 VSIX 项目
创建名为 的
TopLevelMenu
VSIX 项目。 可以通过搜索“vsix”在“ 新建项目 ”对话框中找到 VSIX 项目模板。 有关详细信息,请参阅 使用菜单命令创建扩展。当项目打开时,添加名为 TestCommand 的自定义命令项模板。 在“解决方案资源管理器”中,右键单击项目节点并选择“添加”>“新建项” 。 在 “添加新项 ”对话框中,转到 “Visual C#/扩展性 ”,然后选择“ 命令”。 在窗口底部的 “名称” 字段中,将命令文件名更改为 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 () ”。