Anatomia di un'estensione di Visual Studio
Un pacchetto VSIX è un file vsix che contiene una o più estensioni di Visual Studio e i metadati usati da Visual Studio per classificare e installare le estensioni. Il formato del pacchetto VSIX segue lo standard Open Packaging Conventions (OPC) che significa che può essere aperto da qualsiasi strumento in grado di aprire file ZIP.
Un progetto di estensione è un progetto C# con alcuni extra che lo rendono univoco. Il video seguente illustra un progetto di estensione per comprendere meglio il funzionamento dei progetti di estensione:
Struttura del file
Quando si creano nuove estensioni usando il modello progetto VSIX w/Command (Community), la struttura del file è simile alla seguente:
Il file vsixmanifest è il file principale. Si tratta di un file XML contenente informazioni sull'estensione usata da Visual Studio. Tutti i componenti dell'estensione vengono registrati nel file vsixmanifest . È l'unico file obbligatorio in un progetto VSIX.
Il file VSCommandTable.vsct è la posizione in cui vengono dichiarati i comandi. Si tratta di un file XML che contiene le definizioni di comandi, menu, tasti di scelta rapida e altro ancora. Il file compila il contenuto in un BLOB nell'output .dll usato da Visual Studio per costruire l'intera struttura del menu della tabella dei comandi. Questo file dichiara solo i componenti nella tabella dei comandi; non gestisce chiamate di comando.
Il file *Package.cs è la classe Package, ovvero il punto di ingresso per la maggior parte delle estensioni. In questo caso, spesso si trovano gestori di comandi, finestre degli strumenti, pagine di opzioni, servizi e altri componenti registrati.
Compilazione
Il progetto viene compilato in un file con estensione vsix che si trova nella cartella /bin/debug o /bin/release , che dipende dalla configurazione di compilazione della soluzione corrente. Il carico di lavoro sviluppo di estensioni di Visual Studio fornisce destinazioni e attività MSBuild dedicate per gestire il sapore del progetto VSIX.
Quando il progetto VSIX viene compilato, viene distribuito automaticamente nell'istanza sperimentale. Questo controllo può essere controllato nelle impostazioni del progetto VSIX:
Istanza sperimentale
Per proteggere l'ambiente di sviluppo di Visual Studio da applicazioni non con test che potrebbero modificarlo, VSSDK offre uno spazio sperimentale che è possibile usare per sperimentare. Si sviluppano nuove applicazioni usando Visual Studio come di consueto, ma vengono eseguite usando questa istanza sperimentale.
Ogni applicazione con un pacchetto VSIX avvia l'istanza sperimentale di Visual Studio in modalità di debug.
Se si vuole avviare l'istanza sperimentale di Visual Studio all'esterno di una soluzione specifica, eseguire il comando seguente nella finestra di comando:
devenv.exe /RootSuffix Exp
Per altri concetti di estendibilità, vedere le risorse utili, utili per seguire questo toolkit.