Adicionar um menu à barra de menus do Visual StudioAdd a menu to the Visual Studio menu bar

Este tutorial mostra como adicionar um menu à barra de menus do IDE (ambiente de desenvolvimento integrado) do Visual Studio.This walkthrough shows how to add a menu to the menu bar of the Visual Studio integrated development environment (IDE). A barra de menus do IDE contém categorias de menu, como arquivo, Editar, Exibir, janela e ajuda.The IDE menu bar contains menu categories such as File, Edit, View, Window, and Help.

Antes de adicionar um novo menu à barra de menus do Visual Studio, considere se os comandos devem ser colocados em um menu existente.Before adding a new menu to the Visual Studio menu bar, consider whether your commands should be placed within an existing menu. Para obter mais informações sobre o posicionamento do comando, consulte menus e comandos para o Visual Studio.For more information about command placement, see Menus and commands for Visual Studio.

Os menus são declarados no arquivo . vsct do projeto.Menus are declared in the .vsct file of the project. Para obter mais informações sobre menus e arquivos . vsct , consulte comandos, menus e barras de ferramentas.For more information about menus and .vsct files, see Commands, menus, and toolbars.

Ao concluir este passo a passos, você pode criar um menu chamado menu de teste que contém um comando.By completing this walkthrough, you can create a menu named Test Menu that contains one command.

Observação

A partir do Visual Studio 2019, os menus de nível superior contribuídos por extensões são colocados no menu extensões .Starting in Visual Studio 2019, top level menus contributed by extensions are placed under the Extensions menu.

Pré-requisitosPrerequisites

A partir do Visual Studio 2015, você não instala o SDK do Visual Studio a partir do centro de download.Starting in Visual Studio 2015, you do not install the Visual Studio SDK from the download center. Ele é incluído como um recurso opcional na instalação do Visual Studio.It is included as an optional feature in Visual Studio setup. Você também pode instalar o SDK do VS mais tarde.You can also install the VS SDK later on. Para obter mais informações, consulte instalar o SDK do Visual Studio.For more information, see Install the Visual Studio SDK.

Criar um projeto VSIX que tenha um modelo de item de comando personalizadoCreate a VSIX project that has a custom command item template

  1. Crie um projeto VSIX denominado TopLevelMenu .Create a VSIX project named TopLevelMenu. Você pode encontrar o modelo de projeto VSIX na caixa de diálogo novo projeto pesquisando por "VSIX".You can find the VSIX project template in the New Project dialog by searching for "vsix". Para obter mais informações, consulte criar uma extensão com um comando de menu.For more information, see Create an extension with a menu command.
  1. Quando o projeto for aberto, adicione um modelo de item de comando personalizado chamado TestCommand.When the project opens, add a custom command item template named TestCommand. Na Gerenciador de soluções, clique com o botão direito do mouse no nó do projeto e selecione Adicionar > novo item.In the Solution Explorer, right-click the project node and select Add > New Item. Na caixa de diálogo Adicionar novo item , vá para Visual C#/extensibilidade e selecione comando personalizado.In the Add New Item dialog, go to Visual C# / Extensibility and select Custom Command. No campo nome na parte inferior da janela, altere o nome do arquivo de comando para TestCommand.cs.In the Name field at the bottom of the window, change the command file name to TestCommand.cs.
  1. Quando o projeto for aberto, adicione um modelo de item de comando personalizado chamado TestCommand.When the project opens, add a custom command item template named TestCommand. Na Gerenciador de soluções, clique com o botão direito do mouse no nó do projeto e selecione Adicionar > novo item.In the Solution Explorer, right-click the project node and select Add > New Item. Na caixa de diálogo Adicionar novo item , vá para Visual C#/extensibilidade e selecione comando.In the Add New Item dialog, go to Visual C# / Extensibility and select Command. No campo nome na parte inferior da janela, altere o nome do arquivo de comando para TestCommand.cs.In the Name field at the bottom of the window, change the command file name to TestCommand.cs.

Criar um menu na barra de menus do IDECreate a menu on the IDE menu bar

  1. Em Gerenciador de soluções, abra TestCommandPackage. vsct.In Solution Explorer, open TestCommandPackage.vsct.

    No final do arquivo, há um <Symbols> nó que contém vários <GuidSymbol> nós.At the end of the file, there is a <Symbols> node that contains several <GuidSymbol> nodes. No nó chamado guidTestCommandPackageCmdSet , adicione um novo símbolo, da seguinte maneira:In the node named guidTestCommandPackageCmdSet, add a new symbol, as follows:

    <IDSymbol name="TopLevelMenu" value="0x1021"/>
    
  2. Crie um <Menus> nó vazio no <Commands> nó, logo antes de <Groups> .Create an empty <Menus> node in the <Commands> node, just before <Groups>. No <Menus> nó, adicione um <Menu> nó, da seguinte maneira:In the <Menus> node, add a <Menu> node, as follows:

    <Menus>
          <Menu guid="guidTestCommandPackageCmdSet" id="TopLevelMenu" priority="0x700" type="Menu">
            <Parent guid="guidSHLMainMenu"
                    id="IDG_VS_MM_TOOLSADDINS" />
            <Strings>
              <ButtonText>Test Menu</ButtonText>
            </Strings>
        </Menu>
    </Menus>
    

    Os guid id valores e do menu especificam o conjunto de comandos e o menu específico no conjunto de comandos.The guid and id values of the menu specify the command set and the specific menu in the command set.

    Os guid id valores e do pai posicionam o menu na seção da barra de menus do Visual Studio que contém os menus ferramentas e suplementos.The guid and id values of the parent position the menu on the section of the Visual Studio menu bar that contains the Tools and Add-ins menus.

    O <ButtonText> elemento Especifica que o texto deve aparecer no item de menu.The <ButtonText> element specifies that the text should appear in the menu item.

  3. Na <Groups> seção, localize <Group> e altere o <Parent> elemento para apontar para o menu que acabamos de adicionar:In the <Groups> section, find the <Group> and change the <Parent> element to point to the menu we just added:

    <Groups>
        <Group guid="guidTestCommandPackageCmdSet" id="MyMenuGroup" priority="0x0600">
            <Parent guid="guidTestCommandPackageCmdSet" id="TopLevelMenu"/>
        </Group>
    </Groups>
    

    Isso faz com que o grupo faça parte do novo menu.This makes the group part of the new menu.

  1. Em Gerenciador de soluções, abra TopLevelMenuPackage. vsct.In Solution Explorer, open TopLevelMenuPackage.vsct.

    No final do arquivo, há um <Symbols> nó que contém vários <GuidSymbol> nós.At the end of the file, there is a <Symbols> node that contains several <GuidSymbol> nodes. No nó chamado guidTopLevelMenuPackageCmdSet , adicione um novo símbolo, da seguinte maneira:In the node named guidTopLevelMenuPackageCmdSet, add a new symbol, as follows:

    <IDSymbol name="TopLevelMenu" value="0x1021"/>
    
  2. Crie um <Menus> nó vazio no <Commands> nó, logo antes de <Groups> .Create an empty <Menus> node in the <Commands> node, just before <Groups>. No <Menus> nó, adicione um <Menu> nó, da seguinte maneira:In the <Menus> node, add a <Menu> node, as follows:

    <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>
    

    Os guid id valores e do menu especificam o conjunto de comandos e o menu específico no conjunto de comandos.The guid and id values of the menu specify the command set and the specific menu in the command set.

    Os guid id valores e do pai posicionam o menu na seção da barra de menus do Visual Studio que contém os menus ferramentas e suplementos.The guid and id values of the parent position the menu on the section of the Visual Studio menu bar that contains the Tools and Add-ins menus.

    O <ButtonText> elemento Especifica que o texto deve aparecer no item de menu.The <ButtonText> element specifies that the text should appear in the menu item.

  3. Na <Groups> seção, localize <Group> e altere o <Parent> elemento para apontar para o menu que acabamos de adicionar:In the <Groups> section, find the <Group> and change the <Parent> element to point to the menu we just added:

    <Groups>
        <Group guid="guidTopLevelMenuPackageCmdSet" id="MyMenuGroup" priority="0x0600">
            <Parent guid="guidTopLevelMenuPackageCmdSet" id="TopLevelMenu"/>
        </Group>
    </Groups>
    

    Isso faz com que o grupo faça parte do novo menu.This makes the group part of the new menu.

  1. Na <Buttons> seção, localize o <Button> nó.In the <Buttons> section, find the <Button> node. Em seguida, no <Strings> nó, altere o <ButtonText> elemento para Test Command .Then, in the <Strings> node, change the <ButtonText> element to Test Command.

    Observe que o Visual StudioVisual Studio modelo de pacote gerou um Button elemento que tem seu pai definido como MyMenuGroup .Notice that the Visual StudioVisual Studio Package template has generated a Button element that has its parent set to MyMenuGroup. Como resultado, esse comando aparece no menu.As a result, this command appears on your menu.

Compilar e testar a extensãoBuild and test the extension

  1. Compile o projeto e comece a depuração.Build the project and start debugging. Uma instância da instância experimental deve aparecer.An instance of the experimental instance should appear.
  1. A barra de menus na instância experimental deve conter um menu de menu de teste .The menu bar in the experimental instance should contain a Test Menu menu.
  1. O menu extensões na instância experimental deve conter um menu de menu de teste .The Extensions menu in the experimental instance should contain a Test Menu menu.
  1. No menu de menu testar , selecione comando de teste.On the Test Menu menu, select Test Command.

    Uma caixa de mensagem deve aparecer e exibir a mensagem "TestCommand Inside TopLevelMenu. TestCommand. MenuItemCallback ()".A message box should appear and display the message "TestCommand Inside TopLevelMenu.TestCommand.MenuItemCallback()".

Confira tambémSee also