Uso de la API para combinar un módulo de combinación en una base de datos
Los módulos de combinación proporcionan un método estándar mediante el que los desarrolladores entregan componentes compartidos de Windows Installer y lógica de configuración a sus aplicaciones. Los módulos de combinación deben combinarse en un paquete de instalación mediante una herramienta de combinación. La mejor alternativa es obtener una herramienta de combinación de distribución libre o comprar una de las herramientas de combinación que están disponibles de fabricantes de software independientes. Por ejemplo, puede usar la funcionalidad que proporciona Mergemod.dll.
Siga estos pasos en orden para combinar un módulo de combinación en una base de datos de instalación de Windows Installer mediante la API de Mergemod.dll.
Para combinar un módulo de combinación en una base de datos de instalación de Windows Installer
Abra un archivo de registro mediante OpenLog. Este paso solo es necesario si necesita crear un archivo de registro o anexar un archivo de registro existente para el proceso de combinación.
Abra la base de datos de instalación, un archivo.msi, que recibirá el módulo de combinación mediante OpenDatabase. Este paso es obligatorio.
Abra el módulo de combinación, un archivo .msm, que se va a combinar en la base de datos mediante OpenModule. Se debe abrir un módulo para poder combinarlo con una base de datos de instalación. Este paso es obligatorio.
Combine el módulo en la base de datos de instalación mediante Merge o MergeEx. Tenga en cuenta que solo se puede llamar a Merge o MergeEx una vez para realizar una combinación determinada de archivos .msi y .msm. MergeEx solo está disponible cuando se usa Mergemod.dll versión 2.0 o posterior y solo cuando se usa la interfaz IMsmMerge2. Este paso es obligatorio.
Llame a get_Errors y examine la colección recuperada de errores para los conflictos de combinación u otros errores. La recuperación no es destructiva. Se pueden recuperar varias instancias de la colección de errores mediante llamadas repetidas a get_Errors. Tendrá que resolver los errores según corresponda para su caso.
Asocie los componentes del módulo de combinación con cualquier característica adicional que se haya combinado, o que se combinará, en la base de datos de instalación mediante Connect. La característica ya debe existir antes de llamar a este método. Este paso solo es necesario si tiene características adicionales. Para 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 acciones siguientes.
Para extraer archivos de un archivo .cab insertado y, a continuación, copiarlos en un directorio especificado, use ExtractFiles o ExtractFilesEx. Tenga en cuenta que ExtractFilesEx requiere Mergemod.dll versión 2.0 o posterior.
Para extraer archivos de un archivo .cab insertado y, a continuación, copiarlos en un archivo especificado, use ExtractCAB.
Para extraer archivos de un módulo y, a continuación, copiarlos en una imagen de origen en el disco después de la combinación, use CreateSourceImage. Tenga en cuenta que CreateSourceImage solo está disponible con Mergemod.dll versión 2.0 o posterior.
Cierre el módulo de combinación abierto actualmente mediante CloseModule. Este paso es obligatorio.
Cierre la base de datos de instalación abierta actualmente mediante CloseDatabase. Este paso es obligatorio. El cierre de una base de datos borra toda la información de dependencia, pero no afecta a los errores que no se han recuperado.
Cierre el archivo de registro actual mediante CloseLog. Este paso es necesario si ha abierto un archivo de registro.
Una vez que el módulo se ha combinado en la base de datos mediante Mergemod.dll, la tabla Media debe actualizarse para describir el diseño de imagen de origen deseado. El proceso de combinación que Mergemod.dll proporciona 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.