Erstellen eines Patchpakets

Entwickler erstellen ein Patchpaket, indem sie eine Patcherstellungsdatei generieren und Msimsp.exe verwenden, um die UiCreatePatchPackageEx-Funktion in Patchwiz.dllaufzurufen. Msimsp.exe und Patchwiz.dll werden im Windows Installer SDK bereitgestellt. Weitere Informationen finden Sie unter Beispiel für ein kleines Updatepatching.

Da die Anwendung eines Patches für ein Windows Installer-Paket zur Installation der ursprünglichen Quellen mithilfe einer neuen .msi-Datei führt, muss die neue .msi-Datei mit dem Layout der ursprünglichen Quelle kompatibel bleiben.

Wenn Sie ein Patchpaket erstellen, müssen Sie ein nicht komprimiertes Setupimage verwenden, um einen Patch zu erstellen, z. B. ein Administratives Image oder ein nicht komprimiertes Setupimage von einer CD-ROM. Sie müssen auch die folgenden Einschränkungen einhalten:

  • Verschieben Sie Dateien nicht aus einem Ordner in einen anderen.

  • Verschieben Sie Dateien nicht aus einem Schränk in einen anderen.

  • Ändern Sie nicht die Reihenfolge der Dateien in einem Schränk.

  • Ändern Sie nicht die Sequenznummer vorhandener Dateien. Die Sequenznummer ist der Wert, der in der Sequenzspalte der Dateitabelleangegeben ist.

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

  • Ändern Sie die Primärschlüssel in der Dateitabelle nicht zwischen der ursprünglichen und der neuen .msi Dateiversion.

    Hinweis

    Die Datei muss in der Dateitabelle des Zielimages und des aktualisierten Images denselben Schlüssel aufweisen. Die Zeichenfolgenwerte in der Spalte Datei beider Tabellen müssen identisch sein, einschließlich der Fall.

  • Erstellen Sie kein Paket mit Dateitabellenschlüsseln, die sich nur für den Fall unterscheiden, z. B. vermeiden Sie das folgende Tabellenbeispiel.

    Datei Komponente_ 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. Anschließend 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 aufruft Makecab.exe, wobei die Groß-/Kleinschreibung nicht beachtet wird und ein Fehler auftritt.

    Wenn Sie Mergemodule im Setup verwenden, stellen Sie sicher, dass die Dateisequenznummern und das Layout den oben genannten Richtlinien entsprechen.