Verwenden der API zum Zusammenführen eines Mergemoduls in einer Datenbank

Mergemodule stellen eine Standardmethode für Entwickler bereit, um freigegebene Windows Installer-Komponenten und Setuplogik für ihre Anwendungen bereitzustellen. Mergemodule müssen mithilfe eines Mergetools in einem Installationspaket zusammengeführt werden. Die beste Alternative besteht darin, ein frei verteiltes Mergetool zu erhalten oder eines der Zusammenführungstools zu erwerben, die von unabhängigen Softwareanbietern zur Verfügung stehen. Sie können z. B. die Von Mergemod.dllbereitgestellte Funktionalität verwenden.

Führen Sie die folgenden Schritte nacheinander aus, um ein Mergemodul mithilfe der -API vonMergemod.dllin einer Installationsdatenbank für Windows Installer zusammenzuführen.

So führen Sie ein Mergemodul in einer Windows Installer-Installationsdatenbank zusammen

  1. Öffnen Sie eine Protokolldatei mit OpenLog. Dieser Schritt ist nur erforderlich, wenn Sie eine Protokolldatei für den Mergeprozess erstellen oder eine vorhandene Protokolldatei anfügen müssen.

  2. Öffnen Sie die Installationsdatenbank, eine .msi-Datei,die das Mergemodul mit OpenDatabaseempfängt. Dieser Schritt ist erforderlich.

  3. Öffnen Sie das Mergemodul, eine MSM-Datei,die mit openModulein die Datenbank zusammengeführt wird. Ein Modul muss geöffnet werden, bevor es mit einer Installationsdatenbank zusammengeführt werden kann. Dieser Schritt ist erforderlich.

  4. Führen Sie das Modul mithilfe von Merge oder MergeExmit der Installationsdatenbank zusammen. Beachten Sie, dass Merge oder MergeEx nur einmal aufgerufen werden können, um eine bestimmte Kombination aus .msi- und MSM-Dateien zusammenzuführen. MergeEx ist nur bei Verwendung Mergemod.dll Version 2.0 oder höher und nur bei Verwendung der IMsmMerge2-Schnittstelle verfügbar. Dieser Schritt ist erforderlich.

  5. Rufen Sie get _ Errors auf, und untersuchen Sie die abgerufene Fehlerauflistung auf Zusammenführungskonflikte oder andere Fehler. Der Abruf ist nicht destruktiv. Mehrere Instanzen der Fehlerauflistung können durch wiederholtes Lesen des Aufrufs von get _ Errors abgerufen werden. Sie müssen alle Fehler entsprechend Ihrem Fall beheben.

  6. Ordnen Sie die Komponenten des Mergemoduls allen zusätzlichen Features zu, die mithilfe von Verbindenmit der Installationsdatenbank zusammengeführt wurden oder werden. Das Feature muss bereits vorhanden sein, bevor diese Methode aufgerufen wird. Dieser Schritt ist nur erforderlich, wenn Sie über zusätzliche Features verfügen. Weitere Informationen finden Sie unter Verbinden eines Mergemoduls mit mehreren Features.

  7. Extrahieren Sie bei Bedarf Quelldateien aus dem Modul, indem Sie eine oder mehrere der folgenden Schritte ausführen.

    Verwenden Sie ExtractFiles oder ExtractFilesEx,um Dateien aus einer eingebetteten .cab Datei zu extrahieren und dann in ein angegebenes Verzeichnis zu kopieren. Beachten Sie, dass ExtractFilesEx Mergemod.dll Version 2.0 oder höher erfordert.

    Verwenden Sie ExtractCAB,um Dateien aus einer eingebetteten .cab Datei zu extrahieren und dann in einer angegebenen Datei zu speichern.

    Verwenden Sie CreateSourceImage,um Dateien aus einem Modul zu extrahieren und nach der Zusammenführung in ein Quellimage auf dem Datenträger zu kopieren. Beachten Sie, dass CreateSourceImage nur mit Mergemod.dll Version 2.0 oder höher verfügbar ist.

  8. Schließen Sie das aktuelle geöffnete Mergemodul mit CloseModule. Dieser Schritt ist erforderlich.

  9. Schließen Sie die aktuell geöffnete Installationsdatenbank mit CloseDatabase. Dieser Schritt ist erforderlich. Das Schließen einer Datenbank löscht alle Abhängigkeitsinformationen, wirkt sich jedoch nicht auf Fehler aus, die nicht abgerufen wurden.

  10. Schließen Sie die aktuelle Protokolldatei mit CloseLog. Dieser Schritt ist erforderlich, wenn Sie eine Protokolldatei geöffnet haben.

Nachdem das Modul mithilfe Mergemod.dllmit der Datenbank zusammengeführt wurde, muss die Medientabelle aktualisiert werden, um das gewünschte Quellbildlayout zu beschreiben. Der von Mergemod.dll bereitgestellte Mergeprozess aktualisiert die Medientabelle nicht, da der Consumer des Mergemoduls verschiedene Möglichkeiten zum Layout des Quellbilds auswählen kann.