Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Este passo a passo mostra como criar uma extensão com um comando de menu que inicia o Bloco de Notas.
Criar um comando de menu
Crie um projeto VSIX chamado FirstMenuCommand. Você pode encontrar o modelo de projeto VSIX na caixa de diálogo New Project procurando por "vsix".
Quando o projeto for aberto, adicione um modelo de item de comando personalizado chamado FirstCommand. No 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 Itens C#>Extensibilidade e selecione Comando. No campo Nome na parte inferior da janela, altere o nome do arquivo de comando para FirstCommand.cs.
Construa o projeto e inicie 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.
Na instância experimental, abra a janela Extensões>Gerenciar Extensões. Você deve ver a extensão FirstMenuCommand aqui. (Se tu abrires Gerir Extensões na tua instância de trabalho do Visual Studio, não verás FirstMenuCommand).
Agora vá para o menu Ferramentas na instância experimental. Você deve ver o comando Invoke FirstCommand. Neste ponto, o comando exibe uma caixa de mensagem que diz FirstCommand Inside FirstMenuCommand.FirstCommand.MenuItemCallback(). Veremos como realmente iniciar o Bloco de Notas a partir deste comando na próxima seção.
Alterar o manipulador de comandos de menu
Agora vamos atualizar o manipulador de comandos para iniciar o Bloco de Notas.
Pare a depuração e volte para sua instância de trabalho do Visual Studio. Abra o arquivo FirstCommand.cs e adicione a seguinte declaração using:
using System.Diagnostics;
Encontre o construtor privado FirstCommand. É aqui 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); }
Remova o método
Execute
e adicione um métodoStartNotepad
, que apenas iniciará o Bloco de Notas:private void StartNotepad(object sender, EventArgs e) { ThreadHelper.ThrowIfNotOnUIThread(); Process proc = new Process(); proc.StartInfo.FileName = "notepad.exe"; proc.Start(); }
Agora experimente. Ao iniciares a depuração do projeto e clicares em Ferramentas >InvocarFirstCommand, deverás ver uma instância do bloco de notas aparecer.
Você pode usar uma instância da classe Process para executar qualquer executável, não apenas o Bloco de Notas. Experimente com
calc.exe
, por exemplo.
Limpar o ambiente experimental
Se você estiver desenvolvendo várias extensões, ou apenas explorando resultados com diferentes versões do seu código de extensão, seu ambiente experimental pode parar de funcionar como deveria. Neste caso, deve-se executar o script de redefinição. Chama-se Reset the Visual Studio Experimental Instancee faz 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 chegar a esse script de duas maneiras:
Na área de trabalho, localize Redefinir a instância experimental do Visual Studio.
Na linha de comando, execute o seguinte:
<VSSDK installation>\VisualStudioIntegration\Tools\Bin\CreateExpInstance.exe /Reset /VSInstance=<version> /RootSuffix=Exp && PAUSE
Implante sua extensão
Agora que você tem sua extensão de ferramenta funcionando da maneira que deseja, é 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 tens de fazer é enviar-lhes o ficheiro .vsix que construíste. (Certifique-se de compilá-lo no modo de lançamento.)
Você pode encontrar o .vsix arquivo para esta extensão no diretório FirstMenuCommand bin. Especificamente, assumindo que tenha criado a configuração de Release, ela estará em:
<diretório de código>\FirstMenuCommand\FirstMenuCommand\bin\Release\FirstMenuCommand.vsix
Para instalar a extensão, seu amigo precisa fechar todas as instâncias abertas do Visual Studio e, em seguida, clique duas vezes no arquivo de .vsix, que exibe o VSIX Installer. Os arquivos são copiados para o diretório %LocalAppData%\Microsoft\VisualStudio<>\Extensions diretório.
Quando seu amigo abrir o Visual Studio novamente, ele encontrará a extensão FirstMenuCommand no Ferramentas>Extensões e Atualizações. Eles também podem ir para Extensões e Atualizações para desinstalar ou desativar a extensão.
Próximos passos
Este passo a passo mostrou apenas uma pequena parte do que você pode fazer com uma extensão do Visual Studio. Aqui está uma pequena lista de outras coisas (razoavelmente fáceis) que você pode fazer com extensões do Visual Studio:
Você pode fazer muito mais coisas com um simples comando de menu:
Adicione o seu próprio ícone: Adicionar ícones aos comandos de menu
Alterar o texto do comando de menu: Alterar o texto de um comando de menu
Adicionar um atalho de menu a um comando: Vincular atalhos de teclado a itens de menu
Adicione diferentes tipos de comandos, menus e barras de ferramentas: Estender menus e comandos
Adicionar janelas de ferramentas e estender as janelas de ferramentas internas do Visual Studio: Estender e personalizar janelas de ferramentas
Adicione o IntelliSense, sugestões de código e outros recursos aos editores de código existentes: Estenda o editor e os serviços linguísticos
Adicionar opções e páginas de propriedades e configurações de usuário à sua extensão: Estender propriedades e a janela Propriedades e Estender configurações e opções do usuário
Outros tipos de extensões exigem um pouco mais de trabalho, como a criação de um novo tipo de projeto (Estender projetos), ou criar um novo tipo de editor (Criar editores e designers personalizados).