Uso de automatización para combinar un módulo de combinación con una base de datos
Los módulos de combinación proporcionan un método estándar para entregar componentes compartidos de Windows Installer y configurar lógica en las aplicaciones.
Los módulos de combinación deben combinarse en un paquete de instalación usando una herramienta de combinación. El procedimiento recomendado es obtener una herramienta de combinación gratuita o comprar una de las herramientas de combinación disponibles de proveedores de software independientes. Por ejemplo, puede usar Mergemod.dll.
En el siguiente procedimiento se muestra cómo combinar un módulo de combinación con una base de datos de Windows Installer usando la automatización de módulos de combinación.
Para combinar un módulo con una base de datos
Abra un archivo de registro con el método OpenLog.
Este paso solo es necesario si tiene que crear un archivo de registro o anexar uno que ya existe para el proceso de combinación.
Abra la base de datos de instalación .msi con el método OpenDatabase del objeto Merge.
Este paso es obligatorio.
La base de datos que abre es la que desea que reciba el módulo de combinación.
Abra el módulo de combinación .msm con el método OpenModule.
Este paso es obligatorio.
Este es el módulo de combinación que se combina con la base de datos. Un módulo debe abrirse para poder combinarlo con una base de datos de instalación.
Combine el módulo con la base de datos de instalación llamando al método Merge o MergeEx.
Este paso es obligatorio.
Solo se puede llamar al método Merge o MergeEx una vez para realizar una combinación específica de archivos .msi y .msm.
Nota:
El método MergeEx solo está disponible en Mergemod.dll 2.0 o posterior, y solo cuando se usa la interfaz IMsmMerge2.
Recupere la propiedad Errors y examine la colección de objetos Error que devuelve para comprobar si hay conflictos de combinación u otros errores.
Debe resolver los errores.
La recuperación no es destructiva y se pueden recuperar varias instancias de la colección de errores leyendo repetidamente la propiedad Errors.
Asocie los componentes del módulo de combinación a las características usando el método Connect.
Este paso solo es necesario si ya tiene características y desea agregar otras para combinarlas con la base de datos de instalación.
Debe haber una característica para poder llamar a este método. Para obtener más información, consulte Conexión de un módulo de combinación a varias características.
Si es necesario, extraiga los archivos de origen del módulo realizando una o varias de las siguientes acciones:
Use ExtractFiles o ExtractFilesEx para extraer archivos de un archivo .cab insertado y copiarlos en un directorio especificado.
Nota:
ExtractFilesEx requiere Mergemod.dll 2.0 o posterior.
Use ExtractCAB para extraer archivos de un archivo .cab insertado y guardarlos en un archivo especificado.
Use CreateSourceImage para extraer archivos de un módulo y, después de la combinación, copiarlos en una imagen de origen en el disco.
Nota:
CreateSourceImage solo está disponible en Mergemod.dll 2.0 o posterior.
Cierre el módulo de combinación actual con el método CloseModule.
Este paso es obligatorio.
Cierre la base de datos de instalación abierta con el método CloseDatabase.
Este paso es obligatorio.
Al cerrar una base de datos se borra toda la información de dependencias, pero no afecta a los errores que no se recuperan.
Cierre el archivo de registro actual con el método CloseLog.
Este paso es necesario si tiene un archivo de registro abierto.
Una vez que el módulo se ha combinado con la base de datos por medio de Mergemod.dll, debe actualizarse la tabla Media para describir el diseño de imagen de origen deseado. El proceso de combinación que proporciona Mergemod.dll no actualiza la tabla Media, porque el consumidor del módulo de combinación puede seleccionar varias formas de diseñar la imagen de origen.
Temas relacionados