Compartir a través de


Registro de VSPackage

VSPackages debe avisar a Visual Studio de que están instalados y deben cargarse. Este proceso se logra escribiendo información en el Registro. Es un trabajo típico de un instalador.

Nota:

Es una práctica aceptada durante el desarrollo de VSPackage para usar el registro automático. Sin embargo, los asociados del programa Visual Studio Industry Partner (VSIP) no pueden enviar sus productos mediante el registro automático como parte de la configuración.

Las entradas del Registro en un paquete de Windows Installer se realizan generalmente en la tabla Registro. También puede registrar extensiones de archivo en la tabla Registro. Sin embargo, Windows Installer proporciona compatibilidad integrada mediante el identificador de programación (ProgId), las tablas de clases, extensiones y verbos. Para obtener más información, vea Tablas de base de datos.

Asegúrese de que las entradas del Registro están asociadas al componente adecuado para la estrategia en paralelo elegida. Por ejemplo, las entradas del Registro para un archivo compartido deben estar asociadas al componente de Windows Installer de ese archivo. Del mismo modo, las entradas del Registro para un archivo específico de la versión deben asociarse con el componente del archivo. De lo contrario, la instalación o desinstalación de VSPackage para una versión de Visual Studio podría interrumpir VSPackage en otras versiones. Para obtener más información, vea Compatibilidad con varias versiones de Visual Studio.

Nota:

La manera más fácil de administrar el registro es usar los mismos datos en los mismos archivos para el registro de desarrollador y el registro en tiempo de instalación. Por ejemplo, algunas herramientas de desarrollo del instalador pueden consumir archivos en formato .reg en tiempo de compilación. Si los desarrolladores mantienen archivos .reg para su propio desarrollo y depuración diarias, esos mismos archivos se pueden incluir automáticamente en el instalador. Si no puede compartir automáticamente los datos de registro, debe asegurarse de que la copia del instalador de los datos de registro está actualizada.

Registro de VSPackages no administrados

Los VSPackages no administrados (incluidos los generados por la plantilla de paquete de Visual Studio) usan archivos .rgs de estilo ATL para almacenar información de registro. El formato de archivo .rgs es específico de ATL y normalmente no se puede consumir tal como lo hace una herramienta de creación de instalación. La información de registro del instalador de VSPackage debe mantenerse por separado. Por ejemplo, los desarrolladores pueden mantener los archivos en formato .reg sincronizados con los cambios de archivo .rgs. Los archivos .reg se pueden combinar con RegEdit para el trabajo de desarrollo o consumidos por un instalador.

Registro de VSPackages administrados

La herramienta RegPkg lee los atributos de registro de un VSPackage administrado y puede escribir la información directamente en el registro o escribir archivos .reg-format que un instalador pueda consumir.

Nota:

La herramienta RegPkg no es redistribuible y no se puede usar para registrar un VSPackage en el sistema de un usuario.

Por qué VSPackages no debe registrarse automáticamente en tiempo de instalación

Los instaladores de VSPackage no deben depender del registro automático. A primera vista, mantener los valores del registro de VSPackage solo en el propio VSPackage parece una buena idea. Dado que los desarrolladores necesitan los valores del Registro disponibles para su trabajo y pruebas rutinarios, tiene sentido evitar mantener una copia independiente de los datos del Registro en el instalador. El instalador puede confiar en el propio VSPackage para escribir valores del Registro.

Aunque es bueno en teoría, el registro automático tiene varios errores que hacen que no sea adecuado para la instalación de VSPackage:

  • Para admitir correctamente la instalación, desinstalación, reversión de la instalación y reversión de desinstalación, es necesario crear cuatro acciones personalizadas para cada VSPackage administrado que se registre automáticamente mediante una llamada a RegPkg.

  • El enfoque para la compatibilidad en paralelo puede requerir que cree cuatro acciones personalizadas que invoquen RegSvr32 o RegPkg para cada versión compatible de Visual Studio.

  • Una instalación con módulos auto registrados no se puede revertir de forma segura porque no hay ninguna manera de indicar si otra característica o aplicación usan las claves auto registradas.

  • A veces, los archivos DLL auto registrados se vinculan a archivos DLL auxiliares que no están presentes o son la versión incorrecta. Por el contrario, Windows Installer puede registrar archivos DLL mediante las tablas del Registro sin ninguna dependencia del estado actual del sistema.

  • El código de autoregistro se puede denegar el acceso a los recursos de red, como las bibliotecas de tipos, si un componente se especifica como run-from-source y aparece en la tabla SelfReg. Esto puede hacer que se produzca un error en la instalación del componente durante una instalación administrativa.