Condividi tramite


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

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

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

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

  1. 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;
    
  2. 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);
    }
    
  3. Rimuovere il metodo Execute e aggiungere un metodo StartNotepad, 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();
    }
    
  4. 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:

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

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

  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: Associa tasti di scelta rapida alle voci di menu

  2. Aggiungere diversi tipi di comandi, menu e barre degli strumenti: Estendi 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 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).