将菜单和命令添加到 Visual Studio 扩展

本文将指导你完成将菜单和命令添加到 Visual Studio 扩展的步骤。 命令最常用作 Visual Studio 周围菜单中的按钮。 若要创建命令,需要执行两个步骤:

  1. 定义命令
  2. 处理单击/调用

定义命令

每个菜单中的每个按钮都是一个命令。 若要将命令添加到扩展,必须先在 .vsct 文件中定义它。 它可能如下所示:

<Buttons>
  <Button guid="MyPackage" id="MyCommand" priority="0x0105" type="Button">
    <Parent guid="VSMainMenu" id="View.DevWindowsGroup.OtherWindows.Group1"/>
    <Icon guid="ImageCatalogGuid" id="StatusInformation" />
    <CommandFlag>IconIsMoniker</CommandFlag>
    <Strings>
      <ButtonText>R&amp;unner Window</ButtonText>
    </Strings>
  </Button>
</Buttons>

此按钮位于元素中指定的“查看>其他 Windows”菜单中的Parent父组中

现在可以立即运行扩展,以查看命令是否显示在正确的位置和菜单中。

处理单击/调用

定义按钮后,我们需要处理调用按钮时发生的情况。 我们在如下所示的 C# 类中执行此操作:

[Command("489ba882-f600-4c8b-89db-eb366a4ee3b3", 0x0100)]
public class MyCommand : BaseCommand<TestCommand>
{
    protected override Task ExecuteAsync(OleMenuCmdEventArgs e)
    {
        // Do something
    }
}

请确保从 PackageInitializeAsync 的方法调用它。

protected override async Task InitializeAsync(CancellationToken cancellationToken, IProgress<ServiceProgressData> progress)
{
    await this.RegisterCommandsAsync();
 }    

命令 Guid 和 ID 必须与 .vsct 文件中元素的 guid/id 对 Button 匹配