Uso de evaluadores de coherencia interna
Para validar una base de datos, use una herramienta de validación especial para combinar un archivo .cub que contenga los evaluadores de coherencia interna (ICE) en la base de datos, ejecutar los ICE e informar de los resultados. Varias de estas herramientas se proporcionan en el kit de desarrollo de software (SDK) de Microsoft Windows. Los entornos de creación de proveedores externos también pueden incorporar el sistema de validación de ICE en su entorno de creación. También es posible escribir su propia herramienta para realizar la validación de ICE. La mayoría de las herramientas de validación ICE combinan el archivo .cub y la base de datos en una tercera base de datos temporal. Windows Installer muestra advertencias, errores, información de depuración y errores de API a medida que ejecuta cada ICE en el archivo .cub. Cuando el instalador termina de ejecutar los ICE, cierra el archivo .msi, el archivo .cub y la base de datos temporal sin guardar ningún cambio. El archivo .msi y el archivo .cub permanecen sin cambios en la prueba de validación.
Las acciones personalizadas de ICE se comunican con el usuario llamando a MsiProcessMessage y publicando un mensaje de INSTALLMESSAGE_USER. Un mensaje de ICE normalmente devuelve información como la siguiente:
- Nombre del ICE que ha encontrado un error
- Fecha en que se creó el ICE
- Autor del ICE
- Fecha en que se modificó por última vez el ICE
- Descripción del error de API que provoca un error en el ICE
- Descripción del error
- Una advertencia al usuario
- Nombre de la tabla de base de datos que contiene el error o la advertencia
- Nombre de la columna de tabla que contiene el error o la advertencia
- Claves principales de la tabla que contiene el error o la advertencia
- Una dirección URL a un archivo HTML que proporciona sugerencias de depuración
- Una cadena que puede contener otra información
Los autores de paquetes de instalación pueden escribir acciones personalizadas de ICE o usar el conjunto estándar de ICE incluidos en los archivos .cub proporcionados con el SDK. Para obtener más información sobre cómo escribir un ICE, consulte Compilación de un ICE.
Después de escribir los ICE adecuados para la validación, una persona de desarrollo debe recopilar las acciones personalizadas en una base de datos de .msi, denominada archivo .cub, que contiene solo los ICE y sus tablas necesarias. No se puede instalar un archivo .cub y solo se usa para almacenar y proporcionar acceso a acciones personalizadas de ICE. Para obtener más información sobre cómo crear archivos .cub, consulte Compilación de una base de datos de ICE. Como alternativa, las personas de desarrollo pueden validar su paquete de instalación mediante los ICE existentes descritos en Referencia de ICE. Estos ICE se pueden obtener a partir de archivos .cub estándar proporcionados con el SDK.
La instalación del editor de tablas de base de datos Orca o la herramienta de validación msival2 proporciona los archivos Logo.cub, Darice.cub y Mergemod.cub. El conjunto de ICE en el archivo Logo.cub es un subconjunto de los del archivo Darice.cub. Si el paquete pasa la validación mediante Darice.cub, pasará con Logo.cub. Mergemod.cub contiene un conjunto de ICE que se usan para validar los módulos de combinación. Para obtener más información, consulte Referencia de ICE del módulo de combinación.
Para validar un paquete de instalación
- Obtenga o cree las acciones personalizadas de ICE adecuadas. Es posible que pueda usar uno o varios de los ICE existentes descritos en la Referencia de ICE. Si la validación requiere un ICE que aún no está en esta lista, puede crear un nuevo ICE como se describe en Compilación de un ICE.
- Prepare una base de datos de ICE que contenga todas las acciones personalizadas de ICE. Consulte la sección Compilación de una base de datos ICE para obtener información sobre cómo preparar un archivo .cub.
- Proporcione el archivo .cub y el archivo .msi a una herramienta de validación de paquetes, como Orca.exe o Msival2.exe.
Tenga en cuenta que los módulos de combinación deben validarse como se describe en Validación de módulos de combinación.