Erstellen eines Patchpakets

Entwickler*innen erstellen ein Patchpaket, indem sie eine Patcherstellungsdatei generieren und die UiCreatePatchPackageEx-Funktion in Patchwiz.dll mithilfe von Msimsp.exe aufrufen. „Msimsp.exe“ und „Patchwiz.dll“ werden im Windows Installer SDK bereitgestellt. Weitere Informationen finden Sie unter Beispiel zum Patchen eines kleinen Updates.

Da die Anwendung eines Patches auf ein Windows Installer-Paket dazu führt, dass die ursprünglichen Quellen mithilfe einer neuen MSI-Datei installiert werden, muss die neue MSI-Datei mit dem Layout der ursprünglichen Quelle kompatibel bleiben.

Wenn Sie ein Patchpaket erstellen, müssen Sie einen Patch über ein nicht komprimiertes Setupimage erstellen, z. B. ein Administratorimage oder ein nicht komprimiertes Setupimage von einer CD-ROM. Sie müssen ferner die folgenden Einschränkungen einhalten:

  • Verschieben Sie keine Dateien von einem Ordner in einen anderen.

  • Verschieben Sie keine Dateien von einer CAB-Datei in eine andere.

  • Ändern Sie nicht die Reihenfolge der Dateien in einer CAB-Datei.

  • Ändern Sie nicht die Sequenznummer vorhandener Dateien. Die Sequenznummer ist der in der Spalte „Sequence“ der Tabelle File angegebene Wert.

  • Alle durch den Patch hinzugefügten neuen Dateien müssen am Ende der vorhandenen Dateisequenz platziert werden. Die Sequenznummer einer neuen Datei im aktualisierten Image muss größer sein als die größte Sequenznummer vorhandener Dateien im Zielimage.

  • Ändern Sie nicht die Primärschlüssel in der Tabelle File zwischen der ursprünglichen und der neuen MSI-Dateiversion.

    Hinweis

    Die Datei muss denselben Schlüssel in der Tabelle File des Zielimages und des aktualisierten Images aufweisen. Die Zeichenfolgenwerte in der Spalte „File“ beider Tabellen müssen identisch sein, einschließlich Groß- und Kleinschreibung.

     

  • Erstellen Sie kein Paket mit Schlüsseln für die Tabelle File, die sich nur in der Groß- und Kleinschreibung unterscheiden wie im folgenden Tabellenbeispiel.

    Datei Component_ FileName
    ReadMe.txt Comp1 ReadMe.txt
    ReadMe.txt Comp2 ReadMe.txt

     

    Der Windows Installer kann das vorherige Tabellenbeispiel zulassen, wenn Comp1 und Comp2 in verschiedenen Verzeichnissen installiert sind. In diesem Fall können Sie jedoch Msimsp.exe oder Patchwiz.dll nicht verwenden, um einen Patch für das Paket zu generieren. „Msimsp.exe“ und „Patchwiz.dll“ rufen „Makecab.exe“ auf, bei dem die Groß-/Kleinschreibung nicht beachtet wird und ein Fehler auftritt.

    Stellen Sie beim Verwenden von Mergemodulen im Setup sicher, dass die Dateisequenznummern und das Layout den oben genannten Richtlinien entsprechen.