Verwenden der internen Konsistenzauswertung
Um eine Datenbank zu überprüfen, verwenden Sie ein spezielles Validierungstool, um eine CUB-Datei mit den internen Konsistenzauswertern (Internal Consistency Evaluators, ICEs) in Ihrer Datenbank zusammenzuführen, die ICEs auszuführen und die Ergebnisse zu melden. Mehrere solcher Tools werden im Microsoft Windows Software Development Kit (SDK) bereitgestellt. Erstellungsumgebungen von Drittanbietern enthalten möglicherweise auch das ICE-Validierungssystem in ihren Erstellungsumgebungen. Sie können auch Ihr eigenes Tool zu schreiben, um die ICE-Validierung durchzuführen. Die meisten ICE-Überprüfungstools führen die CUB-Datei und Ihre Datenbank in einer dritten, temporären Datenbank zusammen. Windows Installer zeigt Warnungen, Fehler, Debuginformationen und API-Fehler an, während die einzelnen ICEs in der CUB-Datei ausgeführt werden. Wenn das Installationsprogramm die Ausführung der ICEs abgeschlossen hat, schließt es die MSI-Datei, die CUB-Datei und die temporäre Datenbank, ohne Änderungen zu speichern. Die MSI-Datei und die CUB-Datei bleiben beim Validierungstest unverändert.
Benutzerdefinierte ICE-Aktionen kommunizieren mit dem Benutzer, indem MsiProcessMessage aufgerufen und die Nachricht „INSTALLMESSAGE_USER“ veröffentlicht wird. Eine ICE-Nachricht gibt in der Regel Informationen wie die folgenden zurück:
- Name des ICE, der einen Fehler gefunden hat
- Erstellungsdatum des ICE
- Autor des ICE
- Datum der letzten Änderung des ICE.
- Beschreibung des API-Fehlers, der zum Ausfall des ICE führt
- Beschreibung des Fehlers
- Eine Warnung an den Benutzer
- Name der Datenbanktabelle, die den Fehler oder die Warnung enthält
- Name der Tabellenspalte, die den Fehler oder die Warnung enthält
- Primärschlüssel der Tabelle, die den Fehler oder die Warnung enthält
- Eine URL zu einer HTML-Datei mit Debugvorschlägen
- Eine Zeichenfolge, die weitere Informationen enthalten kann
Autoren von Installationspaketen können benutzerdefinierte ICE-Aktionen schreiben oder den Standardsatz von ICEs verwenden, die in den mit dem SDK bereitgestellten CUB-Dateien enthalten sind. Weitere Informationen zum Schreiben eines ICE finden Sie unter Erstellen eines ICE.
Nach dem Schreiben der entsprechenden ICEs für die Validierung muss ein Entwickler die benutzerdefinierten Aktionen in einer MSI-Datenbank sammeln, die als CUB-Datei bezeichnet wird und nur die ICEs und die erforderlichen Tabellen enthält. Eine CUB-Datei kann nicht installiert werden und wird nur zum Speichern und Bereitstellen des Zugriffs auf benutzerdefinierte ICE-Aktionen verwendet. Weitere Informationen zum Erstellen von CUB-Dateien finden Sie unter Erstellen einer ICE-Datenbank. Alternativ können Entwickler ihr Installationspaket mithilfe der vorhandenen ICEs überprüfen, die in der ICE-Referenz beschrieben sind. Diese ICEs können aus standardmäßigen CUB-Dateien abgerufen werden, die mit dem SDK bereitgestellt werden.
Die Installation des Datenbanktabellen-Editors „Orca“ oder des Validierungstools „msival2“ stellt die Dateien „Logo.cub“, „Darice.cub“ und „Mergemod.cub“ bereit. Der Satz von ICEs in der Datei „Logo.cub“ ist eine Teilmenge der ICEs in der Datei „Darice.cub“. Wenn Ihr Paket die Überprüfung mithilfe von „Darice.cub“ bestanden hat, besteht es sie auch mit „Logo.cub“. Mergemod.cub enthält eine Reihe von ICEs, die zum Überprüfen von Mergemodulen verwendet werden. Weitere Informationen finden Sie in der ICE-Referenz zum Mergemodul.
So validieren Sie ein Installationspaket
- Rufen Sie die entsprechenden benutzerdefinierten ICE-Aktionen ab oder erstellen Sie sie. Möglicherweise können Sie eine oder mehrere der vorhandenen ICEs verwenden, die in der ICE-Referenz beschrieben sind. Wenn ihre Validierung einen ICE erfordert, der noch nicht in dieser Liste enthalten ist, können Sie einen neuen ICE erstellen, wie in Erstellen eines ICE beschrieben.
- Bereiten Sie eine ICE-Datenbank mit allen benutzerdefinierten ICE-Aktionen vor. Informationen zum Vorbereiten einer CUB-Datei finden Sie im Abschnitt Erstellen einer ICE-Datenbank .
- Stellen Sie die CUB-Datei und die MSI-Datei für ein Paketüberprüfungstool wie Orca.exe oder Msival2.exebereit.
Beachten Sie, dass Mergemodule wie unter Überprüfen von Mergemodulen beschrieben überprüft werden sollten.