Criar uma extensão com um comando de menu

este tutorial mostra como criar uma extensão com um comando de menu que inicia Bloco de notas.

Pré-requisitos

a partir do Visual Studio 2015, você não instala o SDK do Visual Studio do centro de download. ele é incluído como um recurso opcional na instalação do Visual Studio. Você também pode instalar o SDK do VS mais tarde. para obter mais informações, consulte instalar o SDK do Visual Studio.

Criar um comando de menu

  1. Crie um projeto VSIX chamado FirstMenuCommand. você pode encontrar o modelo de projeto VSIX na caixa de diálogo novo Project pesquisando por "VSIX".
  1. Quando o projeto for aberto, adicione um modelo de item de comando personalizado chamado FirstCommand. Na Gerenciador de soluções, clique com o botão direito do mouse no nó do projeto e selecione Adicionar > novo item. Na caixa de diálogo Adicionar novo item , vá para extensibilidade do Visual C# > e selecione comando personalizado. No campo nome na parte inferior da janela, altere o nome do arquivo de comando para FirstCommand. cs.
  1. Quando o projeto for aberto, adicione um modelo de item de comando personalizado chamado FirstCommand. Na Gerenciador de soluções, clique com o botão direito do mouse no nó do projeto e selecione Adicionar > novo item. Na caixa de diálogo Adicionar novo item , vá para extensibilidade do Visual C# > e selecione comando. No campo nome na parte inferior da janela, altere o nome do arquivo de comando para FirstCommand. cs.
  1. Compile o projeto e comece a depuração.

    a instância experimental do Visual Studio é exibida. Para obter mais informações sobre a instância experimental, consulte a instância experimental.

  1. Na instância experimental, abra a janela ferramentas > extensões e atualizações . Você deve ver a extensão FirstMenuCommand aqui. (se você abrir extensões e atualizações em sua instância de trabalho do Visual Studio, não verá FirstMenuCommand).
  1. Na instância experimental, abra a janela extensões > gerenciar extensões . Você deve ver a extensão FirstMenuCommand aqui. (se você abrir gerenciar extensões em sua instância de trabalho do Visual Studio, não verá FirstMenuCommand).

Agora, vá para o menu ferramentas na instância experimental. Você deverá ver o comando Invoke FirstCommand . Neste ponto, o comando abre uma caixa de mensagem que diz FirstCommand dentro de FirstMenuCommand. FirstCommand. MenuItemCallback (). veremos como iniciar Bloco de notas a partir desse comando na próxima seção.

Alterar o manipulador de comandos de menu

agora, vamos atualizar o manipulador de comandos para iniciar Bloco de notas.

  1. Pare a depuração e volte para sua instância de trabalho do Visual Studio. Abra o arquivo FirstCommand. cs e adicione a seguinte instrução Using:

    using System.Diagnostics;
    
  2. Localize o Construtor FirstCommand privado. É aí que o comando é conectado ao serviço de comando e o manipulador de comandos é especificado. Altere o nome do manipulador de comandos para StartNotepad, da seguinte maneira:

    private FirstCommand(AsyncPackage package, OleMenuCommandService commandService)
    {
        this.package = package ?? throw new ArgumentNullException(nameof(package));
        commandService = commandService ?? throw new ArgumentNullException(nameof(commandService));
    
        CommandID menuCommandID = new CommandID(CommandSet, CommandId);
        // Change to StartNotepad handler.
        MenuCommand menuItem = new MenuCommand(this.StartNotepad, menuCommandID);
        commandService.AddCommand(menuItem);
    }
    
  3. remova o Execute método e adicione um StartNotepad método, que será iniciado apenas Bloco de notas:

    private void StartNotepad(object sender, EventArgs e)
    {
        ThreadHelper.ThrowIfNotOnUIThread();
    
        Process proc = new Process();
        proc.StartInfo.FileName = "notepad.exe";
        proc.Start();
    }
    
  4. Agora experimente. ao iniciar a depuração do projeto e clicar em ferramentas > invocar FirstCommand, você deverá ver uma instância do Bloco de notas vir.

    você pode usar uma instância da Process classe para executar qualquer executável, não apenas Bloco de notas. Experimente calc.exe , por exemplo,.

Limpar o ambiente experimental

Se você estiver desenvolvendo várias extensões ou apenas explorando resultados com versões diferentes do seu código de extensão, seu ambiente experimental pode parar de funcionar da maneira que deveria. Nesse caso, você deve executar o script de redefinição. ele é chamado redefinir a instância Experimental Visual Studio e é fornecido como parte do SDK do Visual Studio. Esse script remove todas as referências às suas extensões do ambiente experimental, para que você possa começar do zero.

Você pode acessar esse script de uma das duas maneiras:

  1. na área de trabalho, localize redefinir a instância Experimental Visual Studio.

  2. Na linha de comando, execute o seguinte:

    <VSSDK installation>\VisualStudioIntegration\Tools\Bin\CreateExpInstance.exe /Reset /VSInstance=<version> /RootSuffix=Exp && PAUSE
    
    

Implantar sua extensão

Agora que você tem sua extensão de ferramenta em execução da maneira desejada, é hora de pensar em compartilhá-la com seus amigos e colegas. isso é fácil, desde que eles tenham o Visual Studio 2015 instalado. Tudo o que você precisa fazer é enviar a eles o arquivo . vsix que você criou. (Não se esqueça de compilá-lo no modo de liberação.)

Você pode encontrar o arquivo . vsix para essa extensão no diretório bin do FirstMenuCommand . Especificamente, supondo que você criou a configuração de versão, ela estará em:

<code directory>\FirstMenuCommand\FirstMenuCommand\bin\Release\FirstMenuCommand.vsix

para instalar a extensão, seu amigo precisa fechar todas as instâncias abertas do Visual Studio e clicar duas vezes no arquivo . vsix , que abre o instalador do vsix. Os arquivos são copiados para o diretório %LocalAppData%\Microsoft\VisualStudio <version> \Extensions .

quando o seu amigo abrir Visual Studio novamente, ele encontrará a extensão FirstMenuCommand em ferramentas > extensões e atualizações. Eles podem acessar extensões e atualizações para desinstalar ou desabilitar a extensão também.

Próximas etapas

este tutorial mostrou apenas uma pequena parte do que você pode fazer com uma extensão Visual Studio. aqui está uma lista curta de outras coisas (razoavelmente simples) que você pode fazer com as extensões de Visual Studio:

  1. Você pode fazer muitas coisas com um comando de menu simples:

    1. Adicione seu próprio ícone: Adicionar ícones a comandos de menu

    2. Alterar o texto do comando de menu: alterar o texto de um comando de menu

    3. Adicionar um atalho de menu a um comando: associar atalhos de teclado a itens de menu

  2. Adicionar diferentes tipos de comandos, menus e barras de ferramentas: estender menus e comandos

  3. adicione janelas de ferramentas e estenda as janelas internas de ferramentas de Visual Studio: estender e personalizar janelas de ferramentas

  4. Adicionar IntelliSense, sugestões de código e outros recursos a editores de código existentes: estenda o editor e os serviços de linguagem

  5. Adicionar opções e páginas de propriedades e configurações de usuário à sua extensão: estender Propriedades e janela de propriedades e estender as configurações e opções de usuário

    outros tipos de extensões exigem um pouco mais de trabalho, como criar um novo tipo de projeto (estender projetos), criar um novo tipo de editor (criar editores e designers personalizados) ou implementar sua extensão em um shell isolado: Visual Studio shell isolado