ImageFamilies-Tabelle (Patchwiz.dll)
Eine Imagefamilie ist eine Gruppe von mindestens einem aktualisierten Image eines Produkts, das auf die neueste Version aktualisiert wurde. Jedes aktualisierte Image kann nur einer Familie angehören. Aktualisierte Images, die zu einer Imagefamilie gehören, weisen mindestens eine gemeinsame Datei auf. Jede Imagefamilie verfügt über eine eigene Kabinettdatei in der MSP-Datei, die die binären Patches und neuen Dateien enthält, die zum Aktualisieren der Unterschiede zwischen Zieldateien und aktualisierten Dateien erforderlich sind. Die Kabinettdatei repliziert nicht die binären Patches und neuen Dateien, die von den gemeinsamen Dateien verwendet werden.
In jeder Patcherstellungsdatenbank (PCP-Datei) muss eine ImageFamilies-Tabelle mit mindestens einem Datensatz vorhanden sein. Diese Tabelle wird von der UiCreatePatchPackageEx-Funktion verwendet.
Die ImageFamilies-Tabelle enthält die Patchinformationen, die zur Media-Tabelle hinzugefügt werden sollen. Ein Patch fügt einen Eintrag zur Media-Tabelle hinzu. Jeder Datensatz in den ImageFamilies-Tabellen verweist auf eine Gruppe verwandter Produktimages, die auf die neueste Version des Produkts aktualisiert wurden.
Die ImageFamilies-Tabelle umfasst die folgenden Spalten. In den Spalten MediaSrcPropName, MediaDiskId und FileSequenceStart kann ein NULL-Wert verwendet werden, wenn der Patch mit Windows Installer- und Patchwiz.dll-Version 2.0 angewendet wird.
Spalte | Typ | Schlüssel | Nullwerte zulässig |
---|---|---|---|
Familie | text | J | N |
MediaSrcPropName | text | J | |
MediaDiskId | integer | J | |
FileSequenceStart | integer | J | |
DiskPrompt | text | J | |
VolumeLabel | text | J |
Spalten
-
Family
-
Der in dieses Feld eingegebene Wert ist ein Bezeichner für eine Gruppe verwandter Produktimages, die auf die neueste Version des Produkts aktualisiert wurden. Der Wert ist auf insgesamt 8 alphanumerische Zeichen oder Unterstriche beschränkt. Das Installationsprogramm bettet für jede Familie in der Tabelle einen Kabinettdatenstrom in die Windows Installer-Patchdatei (MSP-Datei) ein. Das Kabinett enthält die binären Patches und neuen Dateien, die zum Aktualisieren eines Zielimages in ein aktualisiertes Image des Produkts erforderlich sind. Um den Namen für den Kabinettdatenstrom zu generieren, der in das Cabinet-Feld des neuen Eintrags in der Media-Tabelle eingegeben wird, stellt das Installationsprogramm dem Familiennamen PCW_CAB_ voran.
-
MediaSrcPropName
-
Der Wert, der in das Source-Feld des neuen Eintrags in der Media-Tabelle des aktualisierten Images eingegeben wird. Dieses Feld kann nur NULL sein, wenn Sie Patchwiz.dll-Version 2.0 verwenden und MinimumRequiredMsiVersion in der Properties-Tabelle (Patchwiz.dll) auf 200 festgelegt ist.
-
MediaDiskId
-
Das Installationsprogramm gibt diesen Wert in das DiskId-Feld des neuen Datensatzes in der Media-Tabelle ein. Der DiskID-Wert muss größer sein als jede aktuelle DiskID im Zielpaket. Der Grenzwert für MediaDiskId beträgt 32767. Dieses Feld kann nur NULL sein, wenn Sie Patchwiz.dll-Version 2.0 verwenden und MinimumRequiredMsiVersion in der Properties-Tabelle (Patchwiz.dll) auf 200 festgelegt ist.
-
FileSequenceStart
-
Dieses Feld ist die Sequenznummer für die Startdatei. Eine Dateisequenznummer darf nicht in zwei Patches für dasselbe Produkt vorhanden sein. Um dies sicherzustellen, muss der Wert in diesem Feld größer sein als alle Sequenznummern, die in vorherigen Patches oder im ursprünglichen Installationspaket verwendet wurden. Die größte Sequenznummer in einem Patch kann bestimmt werden, indem die Gesamtzahl der Einträge in der Patchkabinettdatei zur FileSequenceStart-Nummer für den betreffenden Patch addiert wird. Eine Möglichkeit, dies zu ermitteln, besteht darin, die DDF-Datei zu betrachten, die von Patchwiz.dll bei der Erstellung des Patches generiert wird. Der Grenzwert für FileSequenceStart beträgt 32767. Dieses Feld kann nur NULL sein, wenn Sie Patchwiz.dll-Version 2.0 verwenden und MinimumRequiredMsiVersion in der Properties-Tabelle (Patchwiz.dll) auf 200 festgelegt ist.
-
DiskPrompt
-
Das Installationsprogramm gibt diesen Wert in das DiskPrompt-Feld des neuen Datensatzes in der Media-Tabelle ein.
-
VolumeLabel
-
Das Installationsprogramm gibt diesen Wert in das VolumeLabel-Feld des neuen Media-Datensatzes ein.
Bemerkungen
Der Patch fügt den Namen des Kabinetts in der MSP-Datei zum Cabinet-Feld des neuen Datensatzes hinzu, der zur Media-Tabelle hinzugefügt wurde. Da es sich um ein eingebettetes Kabinett handelt, wird dem Namen ein #-Zeichen vorangestellt. Der Patch fügt eine Eigenschaft zum Source-Feld des neuen Datensatzes in der Media-Tabelle hinzu. Keine zwei Patches dürfen dieselbe Source-Eigenschaft aufweisen.
Die Dateien, die in der Imagefamilie gemeinsam verwendet werden, müssen in jedem aktualisierten Image der Familie denselben File-Tabellenschlüssel aufweisen. Alle File-Tabellenschlüssel, die für die aktualisierten Images gemeinsam verwendet werden, müssen dieselbe Datei darstellen und in allen aktualisierten Images identisch sein. Der File-Tabellenschlüssel ist der in der File-Spalte der File-Tabelle eingegebene Wert.
Der Grenzwert für MediaDiskId und FileSequenceStart beträgt 32767. Um diesen Grenzwert zu erhöhen, exportieren Sie die ImageFamilies-Tabelle mit Msidb.exe in eine IDT-Datei. Ändern Sie dort den Spaltentyp von i2 in i4 (bzw. von I2 in I4), und importieren Sie dann die IDT-Datei wieder in die PCP-Datenbank. Transformationen und Patches können nicht zwischen zwei Paketen mit unterschiedlichen Spaltentypen erstellt werden.