Partager via


Ajouter des commutateurs de ligne de commande

Vous pouvez ajouter des commutateurs de ligne de commande qui s’appliquent à votre VSPackage lorsque devenv.exe est exécuté. Permet ProvideAppCommandLineAttribute de déclarer le nom du commutateur et de ses propriétés. Dans cet exemple, le commutateur MySwitch est ajouté pour une sous-classe de VSPackage nommée AddCommandSwitchPackage sans arguments et avec le VSPackage chargé automatiquement.

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

Les paramètres nommés sont affichés dans les descriptions suivantes.

Nom Description
Arguments Nombre d’arguments pour le commutateur. Il peut s’agir de « * » ou d’une liste d’arguments.
DemandLoad Chargez automatiquement vsPackage si cette valeur est définie sur 1, sinon définie sur 0.
HelpString Chaîne d’aide ou ID de ressource de la chaîne à afficher avec devenv / ?.
Nom Commutateur.
PackageGuid GUID du package.

La première valeur des arguments est généralement 0 ou 1. Une valeur spéciale de '*' peut être utilisée pour indiquer que le reste de la ligne de commande est l’argument. Cela peut être utile pour les scénarios de débogage où un utilisateur doit passer une chaîne de commande de débogueur.

La valeur DemandLoad est true soit (1) soit false (0) indique que le VSPackage doit être chargé automatiquement.

La valeur HelpString est l’ID de ressource de la chaîne qui s’affiche dans le devenv / ? Affichage de l’aide. Cette valeur doit être au format « #nnn » où nnn est un entier. La valeur de chaîne dans le fichier de ressources doit se terminer par un nouveau caractère de ligne.

La valeur Name est le nom du commutateur.

La valeur PackageGuid est le GUID du package qui implémente ce commutateur. L’IDE utilise ce GUID pour rechercher le VSPackage dans le Registre auquel le commutateur de ligne de commande s’applique.

Récupérer des commutateurs de ligne de commande

Lorsque votre package est chargé, vous pouvez récupérer les commutateurs de ligne de commande en effectuant les étapes suivantes.

  1. Dans l’implémentation de SetSite votre VSPackage, appelez-le QueryService SVsAppCommandLine pour obtenir l’interface IVsAppCommandLine .

  2. Appelez GetOption pour récupérer les commutateurs de ligne de commande que l’utilisateur a entrés.

    Le code suivant montre comment déterminer si le commutateur de ligne de commande MySwitch a été entré par l’utilisateur :

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

int isPresent = 0;
string optionValue = "";

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

Il vous incombe de case activée pour vos commutateurs de ligne de commande chaque fois que votre package est chargé.