Creare un'estensione con un comando di menu

Questa procedura dettagliata illustra come creare un'estensione con un comando di menu che avvia Blocco note.

Creare un comando di menu

  1. Creare un progetto VSIX denominato FirstMenuCommand. È possibile trovare il modello di progetto VSIX nella finestra di dialogo Nuovo progetto cercando "vsix".

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

  3. Compilare il progetto e avviare il debug.

    Viene visualizzata l'istanza sperimentale di Visual Studio. Per altre informazioni sull'istanza sperimentale, vedere Istanza sperimentale.

  4. 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 Blocco note da questo comando.

Modificare il gestore dei comandi di menu

Aggiornare ora il gestore dei comandi per avviare Blocco note.

  1. 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;
    
  2. 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 Start Blocco note, 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);
    }
    
  3. Rimuovere il Execute metodo e aggiungere un StartNotepad metodo, che inizierà subito Blocco note:

    private void StartNotepad(object sender, EventArgs e)
    {
        ThreadHelper.ThrowIfNotOnUIThread();
    
        Process proc = new Process();
        proc.StartInfo.FileName = "notepad.exe";
        proc.Start();
    }
    
  4. Ora provalo. Quando si avvia il debug del progetto e si fa clic su Strumenti>Richiama FirstCommand, viene visualizzata un'istanza di 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:

  1. Dal desktop trovare Reimpostare l'istanza sperimentale di Visual Studio.

  2. 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 degli strumenti>e Aggiornamenti. Possono passare anche 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:

  1. È possibile eseguire molte altre operazioni con un semplice comando di menu:

    1. Aggiungi un'icona personalizzata: Aggiungi icone ai comandi di menu

    2. Modificare il testo del comando di menu: Modificare il testo di un comando di menu

    3. Aggiungere un collegamento di menu a un comando: Associare le scelte rapide da tastiera alle voci di menu

  2. Aggiungere diversi tipi di comandi, menu e barre degli strumenti: estendere menu e comandi

  3. Aggiungere finestre degli strumenti ed estendere le finestre degli strumenti predefinite di Visual Studio: Estendere e personalizzare le finestre degli strumenti

  4. Aggiungere IntelliSense, suggerimenti di codice e altre funzionalità agli editor di codice esistenti: estendere l'editor e i servizi di linguaggio

  5. 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), la creazione di un nuovo tipo di editor (creazione di editor personalizzati e finestre di progettazione) o l'implementazione dell'estensione in una shell isolata: shell isolata di Visual Studio