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. Nella Esplora soluzioni fare clic con il pulsante destro del mouse sul nodo del progetto e scegliere Aggiungi>nuovo elemento. Nella finestra di dialogo Aggiungi nuovo elemento passare a Estendibilità elementi>C# e selezionare 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 Istanza sperimentale.
Nell'istanza sperimentale aprire la finestra Estensioni gestisci estensioni>. L'estensione FirstMenuCommand dovrebbe essere visualizzata qui. (Se si apre Gestire le estensioni nell'istanza di lavoro di Visual Studio, non verrà visualizzato FirstMenuCommand.
Passare ora al menu Strumenti nell'istanza sperimentale. Verrà visualizzato 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. Aprire il file FirstCommand.cs e aggiungere l'istruzione using seguente:
using System.Diagnostics;
Trovare il costruttore FirstCommand privato. 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
Execute
metodo e aggiungere unStartNotepad
metodo, 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 si avvia il debug del progetto e si fa clic su Strumenti>Richiama FirstCommand, viene visualizzata un'istanza del Blocco note.
È possibile usare un'istanza della Process classe per eseguire qualsiasi eseguibile, non solo blocco note. 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 Reset the Visual Studio Experimental Instance (Reimposta istanza sperimentale di Visual Studio) e 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.
Eseguire il comando seguente dalla riga di comando:
<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 è inviarli al file con estensione vsix creato. Assicurarsi di compilarlo in modalità di rilascio.
È possibile trovare il file vsix per questa estensione nella directory bin FirstMenuCommand . In particolare, presupponendo che sia stata compilata la configurazione release, sarà in:
<code directory>\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 directory %LocalAppData%\Microsoft\VisualStudio<version>\Extensions .
Quando l'amico visualizza nuovamente Visual Studio, troveranno l'estensione FirstMenuCommand in Estensioni e aggiornamenti degli strumenti>. Possono anche passare a Estensioni e aggiornamenti per disinstallare o disabilitare 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: Associare le scelte rapide da tastiera alle voci di menu
Aggiungere diversi tipi di comandi, menu e barre degli strumenti: estendere 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 opzioni e pagine delle proprietà e impostazioni utente all'estensione: estendere le proprietà e la finestra Proprietà ed Estendere le impostazioni e le opzioni utente
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).