Creare un'estensione con un comando di menu
Questa procedura dettagliata illustra come creare un'estensione con un comando di menu che avvia il Blocco note.
Creare un comando di menu
Creare un progetto VSIX denominato FirstMenuCommand. È possibile trovare il modello di progetto VSIX nella finestra di dialogo nuovo progetto cercando "vsix".
Quando si apre il progetto, aggiungere un modello di elemento di comando personalizzato denominato FirstCommand. In Esplora soluzioni fare clic con il pulsante destro del mouse sul nodo del progetto e selezionare Aggiungi>Nuovo elemento. Nella finestra di dialogo Aggiungi nuovo elemento, vai a Elementi C#>Estendibilità e seleziona Comando. Nel campo Nome nella parte inferiore della finestra, modificare il nome del file di comando in FirstCommand.cs.
Compilare il progetto e avviare il debug.
Viene visualizzata l'istanza sperimentale di Visual Studio. Per altre informazioni sull'istanza sperimentale, vedere L'istanza sperimentale.
Nell'istanza sperimentale, apri la finestra di Gestisci Estensioni Estensioni>. Dovresti vedere l'estensione FirstMenuCommand qui. Se apri Gestisci estensioni nella tua istanza di lavoro di Visual Studio, non vedrai FirstMenuCommand.
Vai ora al menu strumenti nell'istanza sperimentale. Dovresti vedere il comando Invoke FirstCommand. A questo punto, il comando visualizza una finestra di messaggio che indica FirstCommand Inside FirstMenuCommand.FirstCommand.MenuItemCallback(). Nella sezione successiva verrà illustrato come avviare effettivamente il Blocco note da questo comando.
Modificare il gestore dei comandi di menu
A questo punto, aggiornare il gestore dei comandi per avviare il Blocco note.
Arrestare il debug e tornare all'istanza di lavoro di Visual Studio. Apri il file FirstCommand.cs e aggiungi la seguente istruzione using:
using System.Diagnostics;
Trova il costruttore privato di FirstCommand. Questo è il percorso in cui il comando viene collegato al servizio di comando e viene specificato il gestore dei comandi. Modificare il nome del gestore dei comandi in StartNotepad, come indicato di seguito:
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); }
Rimuovere il metodo
Execute
e aggiungere un metodoStartNotepad
, che avvierà semplicemente Blocco Note.private void StartNotepad(object sender, EventArgs e) { ThreadHelper.ThrowIfNotOnUIThread(); Process proc = new Process(); proc.StartInfo.FileName = "notepad.exe"; proc.Start(); }
Ora provalo. Quando avvii il debug del progetto e fai clic su Strumenti >Invoke FirstCommand, verrà visualizzata un'istanza del Blocco note.
È possibile usare un'istanza della classe Process per eseguire qualsiasi eseguibile, non solo Notepad. Provare con
calc.exe
, ad esempio.
Pulire l'ambiente sperimentale
Se si sviluppano più estensioni o si esplorano semplicemente i risultati con versioni diverse del codice di estensione, l'ambiente sperimentale potrebbe smettere di funzionare come dovrebbe. In questo caso, è necessario eseguire lo script di reimpostazione. Viene chiamato Reimpostare l'istanza sperimentale di Visual Studioe viene fornito come parte di Visual Studio SDK. Questo script rimuove tutti i riferimenti alle estensioni dall'ambiente sperimentale, in modo da poter iniziare da zero.
È possibile accedere a questo script in uno dei due modi seguenti:
Dal desktop trovare Reimpostare l'istanza sperimentale di Visual Studio.
Dalla riga di comando eseguire quanto segue:
<VSSDK installation>\VisualStudioIntegration\Tools\Bin\CreateExpInstance.exe /Reset /VSInstance=<version> /RootSuffix=Exp && PAUSE
Distribuire l'estensione
Ora che hai l'estensione dello strumento in esecuzione nel modo desiderato, è il momento di pensarci a condividerla con i tuoi amici e colleghi. È facile, purché siano installati Visual Studio 2015. Tutto quello che devi fare è inviargli il file .vsix che hai creato. Assicurarsi di compilarlo in modalità Release.
È possibile trovare il file vsix per questa estensione nella directory FirstMenuCommand bin. In particolare, presupponendo che sia stata compilata la configurazione Release, si troverà in:
<directory del codice sorgente>\FirstMenuCommand\FirstMenuCommand\bin\Release\FirstMenuCommand.vsix
Per installare l'estensione, l'amico deve chiudere tutte le istanze aperte di Visual Studio, quindi fare doppio clic sul file vsix, che visualizza il programma di installazione vsIX . I file vengono copiati nella %LocalAppData%\Microsoft\VisualStudio<versione>\Extensions directory.
Quando l'amico visualizza nuovamente Visual Studio, troverà l'estensione FirstMenuCommand in Tools>Extensions and Updates. Possono passare a Estensioni e aggiornamenti per disinstallare o disabilitare anche l'estensione.
Passaggi successivi
Questa procedura dettagliata ha illustrato solo una piccola parte delle operazioni che è possibile eseguire con un'estensione di Visual Studio. Ecco un breve elenco di altre operazioni (ragionevolmente semplici) che è possibile eseguire con le estensioni di Visual Studio:
È possibile eseguire molte altre operazioni con un semplice comando di menu:
Aggiungi un'icona personalizzata: Aggiungi icone ai comandi di menu
Modificare il testo del comando di menu: Modificare il testo di un comando di menu
Aggiungere un collegamento di menu a un comando: Associa tasti di scelta rapida alle voci di menu
Aggiungere diversi tipi di comandi, menu e barre degli strumenti: Estendi menu e comandi
Aggiungere finestre degli strumenti ed estendere le finestre degli strumenti predefinite di Visual Studio: Estendere e personalizzare le finestre degli strumenti
Aggiungere IntelliSense, suggerimenti di codice e altre funzionalità agli editor di codice esistenti: Estendere l'editor e i servizi di linguaggio
Aggiungere le pagine Opzioni e proprietà e le impostazioni utente all'estensione: Estendere le proprietà e la finestra Proprietà e Estendere le impostazioni utente e le opzioni
Altri tipi di estensioni richiedono un po' di lavoro, ad esempio la creazione di un nuovo tipo di progetto (Estendi progetti) o la creazione di un nuovo tipo di editor (Creare editor personalizzati e finestre di progettazione).