Adición de modificadores de línea de comandos

Puede agregar modificadores de línea de comandos que se aplican a su VSPackage cuando se ejecute devenv.exe . Use ProvideAppCommandLineAttribute para declarar el nombre del modificador y sus propiedades. En este ejemplo, se agrega el modificador MySwitch para una subclase de VSPackage denominada AddCommandSwitchPackage sin argumentos y con vsPackage cargado automáticamente.

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

Los parámetros con nombre se muestran en las descripciones siguientes.

Nombre Descripción
Argumentos Número de argumentos para el modificador. Puede ser "*" o una lista de argumentos.
DemandLoad Cargue el VSPackage automáticamente si se establece en 1; de lo contrario, establezca en 0.
HelpString Cadena de ayuda o identificador de recurso de la cadena que se va a mostrar con devenv /?.
Nombre El modificador.
PackageGuid Identificador único global (GUID) del paquete.

El primer valor de Arguments suele ser 0 o 1. Se puede usar un valor especial de '*' para indicar que todo el resto de la línea de comandos es el argumento . Esto puede ser útil para los escenarios de depuración en los que un usuario debe pasar una cadena de comandos del depurador.

El valor DemandLoad es true (1) o false (0) indica que el VSPackage se debe cargar automáticamente.

El valor helpString es el identificador de recurso de la cadena que aparece en el devenv /? Pantalla de ayuda. Este valor debe estar en el formato "#nnn", donde nnn es un entero. El valor de cadena del archivo de recursos debe terminar en un carácter de línea nuevo.

El valor Name es el nombre del modificador.

El valor packageGuid es el GUID del paquete que implementa este modificador. El IDE usa este GUID para buscar el VSPackage en el Registro al que se aplica el modificador de línea de comandos.

Recuperación de modificadores de línea de comandos

Cuando se carga el paquete, puede recuperar los modificadores de línea de comandos completando los pasos siguientes.

  1. En la implementación de SetSite VSPackage, llame QueryServiceSVsAppCommandLine a para obtener la IVsAppCommandLine interfaz .

  2. Llame GetOption a para recuperar los modificadores de línea de comandos especificados por el usuario.

    En el código siguiente se muestra cómo averiguar si el usuario especificó el modificador de línea de comandos MySwitch:

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

int isPresent = 0;
string optionValue = "";

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

Es su responsabilidad comprobar los modificadores de la línea de comandos cada vez que se carga el paquete.