Aggiungere opzioni della riga di comando

È possibile aggiungere opzioni della riga di comando applicabili al pacchetto VSPackage quando viene eseguito devenv.exe . Utilizzare ProvideAppCommandLineAttribute per dichiarare il nome dell'opzione e le relative proprietà. In questo esempio, l'opzione MySwitch viene aggiunta per una sottoclasse di VSPackage denominata AddCommandSwitchPackage senza argomenti e con il vsPackage caricato automaticamente.

[ProvideAppCommandLine("MySwitch", typeof(AddCommandSwitchPackage), Arguments = "0", DemandLoad = 1)]

I parametri denominati sono illustrati nelle descrizioni seguenti.

Nome Descrizione
Argomenti Numero di argomenti per l'opzione. Può essere "*" o un elenco di argomenti.
DemandLoad Caricare automaticamente il pacchetto VSPackage se è impostato su 1, altrimenti impostato su 0.
Helpstring Stringa della Guida o ID risorsa della stringa da visualizzare con devenv /?.
Nome Opzione.
PackageGuid GUID del pacchetto.

Il primo valore di Arguments è in genere 0 o 1. Un valore speciale di '*' può essere usato per indicare che l'intero resto della riga di comando è l'argomento . Può essere utile per gli scenari di debug in cui un utente deve passare una stringa di comando del debugger.

Il valore DemandLoad è true (1) o false (0) indica che il pacchetto VSPackage deve essere caricato automaticamente.

Il valore HelpString è l'ID risorsa della stringa visualizzata in devenv /? Visualizzazione della Guida. Questo valore deve essere nel formato "#nnn" dove nnn è un numero intero. Il valore stringa nel file di risorse deve terminare con un nuovo carattere di riga.

Il valore Name è il nome dell'opzione.

Il valore PackageGuid è il GUID del pacchetto che implementa questa opzione. L'IDE usa questo GUID per trovare il VSPackage nel Registro di sistema a cui si applica l'opzione della riga di comando.

Recuperare le opzioni della riga di comando

Quando il pacchetto viene caricato, è possibile recuperare le opzioni della riga di comando completando i passaggi seguenti.

  1. Nell'implementazione del SetSite pacchetto VSPackage chiamare QueryService su SVsAppCommandLine per ottenere l'interfaccia IVsAppCommandLine .

  2. Chiamare GetOption per recuperare le opzioni della riga di comando immesse dall'utente.

    Il codice seguente mostra come determinare se l'opzione della riga di comando MySwitch è stata immessa dall'utente:

IVsAppCommandLine cmdline = (IVsAppCommandLine)GetService(typeof(SVsAppCommandLine));

int isPresent = 0;
string optionValue = "";

cmdline.GetOption("MySwitch", out isPresent, out optionValue);

È responsabilità dell'utente verificare la presenza delle opzioni della riga di comando ogni volta che il pacchetto viene caricato.