Registro de complementos
Actualización: noviembre 2007
Después de crear un complemento, hay que registrarlo con Visual Studio antes de que esté disponible para activarlo en el Administrador de complementos. Esto se hacía en las versiones anteriores de Visual Studio utilizando las claves del Registro, pero ahora se realiza mediante un archivo XML.
Nota: |
---|
El archivo .Addin se crea automáticamente al crear un complemento mediante el Asistente para complementos. La siguiente información sólo se aplica si se desea crear o editar manualmente el archivo de registro del complemento. |
En Visual Studio .NET 2002 y Visual Studio .NET 2003, había que registrar los ensamblados de complementos con Windows como componentes COM, mediante la Herramienta Registro de ensamblados (regasm.exe). Además, había que registrar el complemento con Visual Studio mediante claves en el Registro de Windows, antes de que el complemento apareciera en el Administrador de complementos.
Estos pasos han cambiado, comenzando con Visual Studio 2005. Ya no es necesario registrar los ensamblados .NET con Windows mediante la herramienta regasm. En lugar de ello, simplemente se coloca el archivo .DLL del ensamblado en un directorio específico (el cual se detalla más adelante en este tema), junto con un archivo XML que tenga una extensión de archivo .Addin. Este archivo XML describe la información que Visual Studio requiere para mostrar el complemento en el Administrador de complementos. Cuando se inicia Visual Studio, éste busca en la ubicación de archivos .Addin (que se muestra a continuación) cualquier archivo .Addin disponible. Si encuentra alguno, lee el archivo XML y facilita al Administrador de complementos la información necesaria para iniciar el complemento cuando se hace clic en él.
Este método de registro simplificado permite instalaciones de estilo XCopy para los complementos de código administrado. Si se colocan todos los archivos en el lugar correcto, el complemento funcionará a la perfección. Además, su uso de código XML marcado como comentario para definir la configuración de registro de los complementos permite comprender y editar la información más fácilmente que las claves del Registro.
Archivo .Addin
Un nuevo archivo XML con la extensión .Addin reemplaza la configuración de Registro del complemento antiguo. Una vez que finaliza el Asistente para complementos, se crean automáticamente dos copias del archivo .Addin:
Ubicación del archivo .Addin |
Ubicación del archivo .DLL |
Descripción |
---|---|---|
Carpeta Addin (por ejemplo, \Documents and Settings\All Users\Documentos compartidos\Visual Studio 2008\Addins) O bien \Documents and Settings\<nombre de usuario>\Mis Documentos\Visual Studio 2008\Addins) |
Carpeta de depuración del proyecto (por ejemplo, \Mis documentos\Visual Studio Projects\MyAddin1\MyAddin1\bin) |
Se utiliza para ejecutar el complemento en el entorno de depuración. Siempre debe señalar la ruta de acceso de los resultados de la configuración de generación actual. |
Carpeta raíz del proyecto (por ejemplo, \Mis documentos\Visual Studio\Projects\MyAddin1) |
Ruta de acceso local (MyAddin1.dll) |
Se utiliza para la implementación del proyecto de complemento. Está incluido en el proyecto para facilitar la edición y se configura con la ruta de acceso local para la implementación de estilo XCopy. |
El archivo XML .Addin se divide en las siguientes secciones etiquetadas:
Valor |
Descripción |
---|---|
Aplicación host |
(Requerido) Especifica los nombres y números de versión de las aplicaciones que pueden cargar el complemento. |
Ensamblado |
(Requerido) Especifica la ubicación de los binarios del complemento. En este campo se puede establecer una ruta de acceso local, una ruta de acceso a la red o una dirección URL válida. |
Nombre de clase completo |
(Requerido) Especifica el nombre de la clase que se utiliza para conectarse al complemento. |
Comportamiento de carga |
(Opcional) Define si un complemento se carga al inicio o manualmente. |
Carga previa de comando |
(Opcional) Especifica el estado de carga previa del complemento, es decir, si el complemento debe o no crear su interfaz de usuario (UI) utilizando un método como Commands.AddNamedCommand. |
Seguro para la línea de comandos |
(Opcional) Especifica los modos de Visual Studio con los que el complemento es compatible, como por ejemplo, sólo la línea de comandos, sólo el entorno de desarrollo integrado (IDE), o bien, los dos. |
A continuación, se muestran los detalles de cada valor.
Aplicación host
La etiqueta <Name> de Aplicación host contiene el nombre de la aplicación. Éste es el nombre que aparece en la barra de título de la aplicación o que es devuelto por DTE.Name. Entonces, por ejemplo, para Visual Studio, la etiqueta debe decir "Microsoft Visual Studio" y para el objeto IDE de macros, la etiqueta debe decir "Macros de Microsoft Visual Studio".
Puede haber más de un valor Aplicación host por archivo .Addin. Cada valor debe estar entre etiquetas <Name>, dentro de la etiqueta <HostApplication>. Además de la etiqueta <Name>, cada etiqueta <HostApplication> debe incluir también el número de versión de esa aplicación entre etiquetas <Version>. Por ejemplo:
<HostApplication>
<!-- First Host App name (required). -->
<Name>Microsoft Visual Studio</Name>
<Version>9.0</Version>
</HostApplication>
<HostApplication>
<!-- An additional supported program/version. -->
<Name>Microsoft Visual Studio Macros</Name>
<Version>9.0</Version>
</HostApplication>
Otra opción es especificar un asterisco (*) para representar el valor de <Version> para cualquier versión de Visual Studio. Vea la sección "Ejemplo de archivo XML .Addin" más adelante en este tema, para conocer la posición jerárquica de estas etiquetas.
Nombre descriptivo
La etiqueta <FriendlyName>, que se encuentra bajo la etiqueta <Addin>, especifica la cadena que aparecerá en la columna Complementos disponibles del complemento en el Administrador de complementos. A continuación, se muestra un ejemplo de su uso:
<FriendlyName>My New Super Addin</FriendlyName>
Vea la sección "Ejemplo de archivo XML .Addin" más adelante en este tema, para conocer la posición jerárquica de esta etiqueta.
Descripción
La etiqueta <Description>, que se encuentra bajo la etiqueta <Addin>, especifica la cadena que aparecerá en el cuadro Descripción del complemento en el Administrador de complementos. A continuación, se muestra un ejemplo de su uso:
<Description>This add-in will change your life!</Description>
Vea la sección "Ejemplo de archivo XML .Addin" más adelante en este tema, para conocer la posición jerárquica de esta etiqueta.
Detalles del cuadro Acerca de
Si selecciona esta opción para generar la configuración del cuadro de diálogo Acerca de en el menú de Ayuda al crear el complemento, esta etiqueta se agregará al archivo .Addin. Esta etiqueta especifica el texto que el complemento mostrará en el cuadro de diálogo Acerca de en el menú de Ayuda de Visual Studio. A continuación, se muestra un ejemplo de su uso:
<AboutBoxDetails>For add-in support, call 1-800-xxx-
xxxx.</AboutBoxDetails>
Vea la sección "Ejemplo de archivo XML .Addin" más adelante en este tema, para conocer la posición jerárquica de esta etiqueta.
Datos del icono Acerca de
Si selecciona esta opción para generar la configuración del cuadro de diálogo Acerca de en el menú de Ayuda al crear el complemento, esta etiqueta se agregará al archivo .Addin. Esta etiqueta contiene datos binarios que especifican el icono que el complemento mostrará en el cuadro de diálogo Acerca de en el menú Ayuda de Visual Studio. A continuación, se muestra un ejemplo de su uso:
<AboutIconData>0000010006 . . . FFFF0000</AboutIconData>
Vea la sección "Ejemplo de archivo XML .Addin" más adelante en este tema, para conocer la posición jerárquica de esta etiqueta.
Ensamblado
La etiqueta <Assembly>, que se encuentra bajo la etiqueta <Addin>, especifica la ubicación de los archivos binarios del complemento. En esta etiqueta se puede establecer una ruta de acceso local, una ruta de acceso a la red ("archivo"), un nombre de ensamblado registrado ("ensamblado") o una dirección URL válida ("url"). Vea la sección "Ejemplo de archivo XML .Addin" más adelante en este tema, para conocer la posición jerárquica de esta etiqueta.
A continuación, se muestra un ejemplo de una ubicación de complemento de dirección URL. En este caso, el parámetro src se establece en url para indicar la ubicación basada en Web del archivo DLL del complemento:
<Assembly src="url">http://somewebsite.com/MyAddin4.dll</Assembly>
A continuación, se muestra un ejemplo de la ubicación de una ruta de acceso local. En este caso, el parámetro src se establece en file para indicar la ubicación local del archivo DLL del complemento:
<Assembly src="file">C:\Documents and Settings\jdoe\Application Data\Microsoft\Visual Studio\8.0\AddIns\MyAddin4.dll</Assembly>
A continuación, se muestra un ejemplo de una ruta de acceso local. En este caso, el parámetro src se establece en assembly para indicar la ubicación basada en Web del archivo DLL del complemento:
<Assembly src="assembly">BookshelfDefineAddin</Assembly>
Nombre de clase completo
La etiqueta <FullClassName> especifica el nombre completo de la clase que se utiliza para conectarse al complemento, incluido el espacio de nombres que contiene la clase. A continuación, se muestra un ejemplo de uso:
<FullClassName>MyAddin4.Connect</FullClassName>
Vea la sección "Ejemplo de archivo XML .Addin" más adelante en este tema, para conocer la posición jerárquica de esta etiqueta.
Comportamiento de carga
La etiqueta <LoadBehavior> define si un complemento se carga automáticamente al inicio del IDE o si se inicia manualmente. La etiqueta <LoadBehavior> está bajo la etiqueta <Addin>. A continuación, se muestra un ejemplo de uso:
<LoadBehavior>1</LoadBehavior>
Aunque el uso de la etiqueta <LoadBehavior> es opcional, se recomienda utilizarla para definir explícitamente cuándo se carga un complemento.
Valor |
Descripción |
---|---|
0 |
El complemento no se carga al inicio del IDE y se debe iniciar manualmente. |
1 |
El complemento se carga automáticamente al inicio del IDE. |
4 |
El complemento se carga cuando devenv se inicia desde la línea de comandos con un modificador de generación (devenv /build). |
Vea la sección "Ejemplo de archivo XML .Addin" más adelante en este tema, para conocer la posición jerárquica de esta etiqueta.
Carga previa de comando
La etiqueta <CommandPreload> especifica si el complemento se debe cargar previamente o no. La carga previa carga el complemento la primera vez que Visual Studio se inicia tras colocar el archivo .Addin en un disco. A continuación, se muestra un ejemplo de uso:
<CommandPreload>1</CommandPreload>
Esta etiqueta permite especificar que un complemento se debe cargar después de que se inicie Visual Studio. De esta forma, el complemento tiene la oportunidad de crear los elementos necesarios de la interfaz de usuario, como botones de la barra de comandos, o bien realizar otras tareas de inicialización que sólo se ejecutan la primera vez, como por ejemplo, crear la configuración predeterminada del complemento. A continuación, el complemento se descarga de inmediato hasta que un usuario ejecute uno de los comandos creados por el complemento, el cual después carga el complemento según se requiera en todas las instancias sucesivas del IDE.
Valor |
Descripción |
---|---|
0 |
El complemento no se carga hasta que el usuario lo inicia a través del Administrador de complementos o hasta que el complemento se configura para cargarse al inicio. |
1 |
El complemento se carga automáticamente cuando Visual Studio se inicia por primera vez después de que el archivo XML .Addin se coloca en un disco. |
Puede comprobar el método OnConnection implementado para ver si el tipo de conexión es ext_cm_UISetup, especificado con el segundo argumento en OnConnection. Si es así, se puede dar a los comandos la ubicación deseada, utilizando los métodos AddNamedCommand o AddControl.
Vea la sección "Ejemplo de archivo XML .Addin" más adelante en este tema, para conocer la posición jerárquica de esta etiqueta.
Seguro para la línea de comandos
La etiqueta opcional <CommandLineSafe> indica si el complemento se diseñó para no mostrar una interfaz de usuario cuando se inicia a través de la línea de comandos devenv, como por ejemplo, cuando se generan líneas de comandos o se realizan otras operaciones similares. (Para esto, se debe elegir la opción Mi complemento nunca utilizará una interfaz de usuario modal en el Asistente para complementos). Además, especifica los modos de Visual Studio con los que el complemento es compatible, como por ejemplo, sólo la línea de comandos o sólo el IDE. A continuación, se muestra un ejemplo de uso:
<CommandLineSafe>0</CommandLineSafe>
Valor |
Descripción |
---|---|
0 |
Especifica que el complemento no es seguro para la línea de comandos y puede mostrar una interfaz de usuario. |
1 |
Especifica que el complemento es seguro para la línea de comandos y no muestra una interfaz de usuario. |
Vea la sección "Ejemplo de archivo XML .Addin" más adelante en este tema, para conocer la posición jerárquica de esta etiqueta.
Ejemplo de un archivo XML .Addin
A continuación, se muestra un ejemplo de un archivo XML .Addin completo. Muestra la jerarquía y las ubicaciones de las etiquetas mencionadas.
<?xml version="1.0" encoding="UTF-16" standalone="no"?>
<Extensibility
xmlns="https://schemas.microsoft.com/AutomationExtensibility">
<HostApplication>
<Name>Microsoft Visual Studio Macros</Name>
<Version>9.0</Version>
</HostApplication>
<HostApplication>
<Name>Microsoft Visual Studio</Name>
<Version>9.0</Version>
</HostApplication>
<Addin>
<FriendlyName>My great new add-in.</FriendlyName>
<Description>This add-in does it all.</Description>
<AboutBoxDetails>Copyright 2008.</AboutBoxDetails>
<AboutIconData>0000 . . . FFFF0000</AboutIconData>
<Assembly>MyNewAddin.dll</Assembly>
<FullClassName>MyNewAddin.Connect</FullClassName>
<LoadBehavior>1</LoadBehavior>
<CommandPreload>1</CommandPreload>
<CommandLineSafe>0</CommandLineSafe>
</Addin>
</Extensibility>
Vea también
Tareas
Cómo: Controlar complementos con el Administrador de complementos
Conceptos
Gráfico del modelo de objetos de automatización
Referencia
Modificadores y comandos de Visual Studio