Utilisation d’évaluateurs de cohérence interne
Pour valider une base de données, utilisez un outil de validation spécial pour fusionner un fichier .cub contenant les évaluateurs de cohérence interne (ICE) dans votre base de données, exécuter les ICE et signaler les résultats. Plusieurs de ces outils sont fournis dans le Kit de développement logiciel (SDK) de Microsoft Windows. Les environnements de création de fournisseurs tiers peuvent également incorporer le système de validation ICE dans leur environnement de création. Il est également possible d’écrire votre propre outil pour effectuer la validation ICE. La plupart des outils de validation ICE fusionnent le fichier .cub et votre base de données dans une troisième base de données temporaire. Windows Installer affiche des avertissements, des erreurs, des informations de débogage et des erreurs d’API lors de l’exécution de chaque ICE dans le fichier .cub. Lorsque le programme d’installation termine l’exécution des ICE, il ferme le fichier .msi, le fichier .cub et la base de données temporaire sans enregistrer les modifications. Le fichier .msi et le fichier .cub restent inchangés par le test de validation.
Les actions personnalisées ICE communiquent à l’utilisateur en appelant MsiProcessMessage et en publiant un message INSTALLMESSAGE_USER. Un message ICE retourne généralement des informations telles que les suivantes :
- Nom de l’ICE qui a trouvé une erreur
- Date de création de l’ICE
- Auteur de l’ICE
- Date de la dernière modification de l’ICE.
- Description de l’erreur d’API à l’origine de l’échec du ICE
- Description de l'erreur
- Avertissement à l’utilisateur
- Nom de la table de base de données contenant l’erreur ou l’avertissement
- Nom de la colonne de table contenant l’erreur ou l’avertissement
- Clés primaires de la table contenant l’erreur ou l’avertissement
- URL vers un fichier HTML donnant des suggestions de débogage
- Chaîne qui peut contenir d’autres informations
Les auteurs de packages d’installation peuvent écrire des actions personnalisées ICE ou utiliser l’ensemble standard d’ICE inclus dans les fichiers .cub fournis avec le SDK. Pour plus d’informations sur l’écriture d’un ICE, consultez Création d’un ICE.
Après avoir écrit les ICE appropriés pour la validation, un développeur doit collecter les actions personnalisées ensemble dans une base de données .msi, appelée fichier .cub, qui contient uniquement les ICE et leurs tables requises. Un fichier .cub ne peut pas être installé et est utilisé uniquement pour stocker et fournir l’accès aux actions personnalisées d’ICE. Pour plus d’informations sur la création de fichiers .cub, consultez Création d’une base de données ICE. Les développeurs peuvent également valider leur package d’installation à l’aide des ICE existants décrits dans Référence ICE. Ces ICE peuvent être obtenus à partir de fichiers .cub standard fournis avec le SDK.
L’installation de l’éditeur de table de base de données Orca ou de l’outil de validation msival2 fournit les fichiers Logo.cub, Darice.cub et Mergemod.cub. L’ensemble d’ICE dans le fichier Logo.cub est un sous-ensemble de ceux du fichier Darice.cub. Si votre package réussit la validation à l’aide de Darice.cub, il passera avec Logo.cub. Mergemod.cub contient un ensemble d’ICE utilisés pour valider les modules de fusion. Pour plus d’informations, consultez Fusionner des modules de référence ICE.
Valider un package d’installation
- Obtenez ou créez les actions personnalisées ICE appropriées. Vous serez peut-être en mesure d’utiliser un ou plusieurs des ICE existants décrits dans la Référence ICE. Si votre validation nécessite un ICE qui n’est pas encore dans cette liste, vous pouvez créer un ICE comme décrit dans Création d’un ICE.
- Préparez une base de données ICE contenant toutes les actions personnalisées ICE. Consultez la section Création d’une base de données ICE pour plus d’informations sur la préparation d’un fichier .cub.
- Fournissez le fichier .cub et le fichier .msi à un outil de validation de package tel que Orca.exe ou Msival2.exe.
Notez que les modules de fusion (Merge) doivent être validés à l’aide de la méthode décrite dans Validation des modules de fusion.