Einbinden einer CAB-Datei in eine Installation
In diesem Abschnitt wird das Einbinden von CAB-Dateien in Installationen beschrieben. Weitere Informationen finden Sie unter Verwenden von CAB-Dateien und komprimierten Quellen.
Einbinden einer CAB-Datei in ein Installationspaket
- Verwenden Sie ein CAB-Erstellungstool, um die Quelldateien in eine CAB-Datei zu komprimieren. Siehe CAB-Dateien.
- Die CAB-Datei muss sich entweder in einem Datenstrom innerhalb der MSI-Datei oder in einer separaten CAB-Datei befinden, die sich im Stamm der durch die Verzeichnistabelle angegebenen Quellstruktur befindet.
- Legen Sie fest, ob die Quelle ein komprimierter Typ oder ein gemischter Typ sein soll, der sowohl nicht komprimierte als auch komprimierte Dateien enthält. Siehe komprimierte und nicht komprimierte Quellen. Legen Sie je nach Typ des Quellimages die komprimierten oder nicht komprimierten Flagbits der Word Count Summary-Eigenschaft fest.
- Fügen Sie der Dateitabelle für jede CAB-Datei einen Datensatz hinzu. Geben Sie in der Spalte „Datei“ einen Dateischlüssel ein, der exakt mit dem Dateischlüssel der CAB-Datei übereinstimmt. Bei den Dateischlüsseln wird Groß-/Kleinschreibung unterschieden. Die Dateiinstallationssequenz in der Dateitabelle und der CAB-Datei muss ebenfalls identisch sein. Die Dateisequenz wird durch die Sequenznummer in der Spalte „Sequenz“ angegeben. Gehen Sie wie folgt vor, um die Sequenznummer für die erste CAB-Datei einzugeben. Suchen Sie in der Medientabelle den Datensatz mit dem höchsten Wert in der Spalte „DiskID“. Das Feld „LastSequence“ dieses Datensatzes gibt die letzte Dateisequenznummer an, die auf dem Medium verwendet wird. Weisen Sie der ersten neuen CAB-Datei in der Dateitabelle eine Sequenznummer zu, die größer ist als diese. Weisen Sie alle verbleibenden Dateien in der gleichen Reihenfolge wie in der CAB-Datei Sequenznummern zu. Eine Beschreibung der verbleibenden Datensatzfelder finden Sie unter Dateitabelle.
- Fügen Sie der Medientabelle für die CAB-Datei einen Datensatz hinzu. Geben Sie im Feld „DiskID“ dieses neuen Datensatzes einen Wert ein, der größer ist als der größte in der Tabelle bereits vorhandene DiskID-Wert. Geben Sie den Namen der CAB-Datei in das entsprechende Feld ein. Dieser Name muss in Form eines CAB-Datentyps vorliegen. Setzen Sie dem Namen das Nummernzeichen „#” voran, wenn es sich bei der CAB-Datei um einen in der MSI-Datei gespeicherten Datenstrom handelt. Beachten Sie, dass Groß-/Kleinschreibung berücksichtigt wird, wenn es sich bei der CAB-Datei um einen Datenstrom handelt. Wenn es sich bei der CAB-Datei um eine separate Datei handelt, spielt die Groß-/Kleinschreibung keine Rolle.
- Ermitteln Sie die größte Dateisequenznummer in der neuen CAB-Datei in der Spalte „Sequenz” der aktualisierten Dateitabelle. Geben Sie einen höheren Wert als diesen in das Feld „LastSequence” des neuen Datensatzes der Medientabelle ein. Eine Beschreibung der verbleibenden Datensatzfelder finden Sie unter Medientabelle.
- Sie können die CAB-Datei im Installationspaket speichern, indem Sie entweder ein Tool wie Msidb.exe oder die Datenbankfunktionen des Installationsprogramms verwenden. In den folgenden vier Schritten wird erläutert, wie Sie die CAB-Datei aus einem Programm mithilfe der Datenbankfunktionen hinzufügen.
- Um die CAB-Datei zum Installationspaket eines Programms hinzuzufügen, öffnen Sie eine Ansicht der _Streams-Tabelle der Datenbank mithilfe von MsiDatabaseOpenView.
- Verwenden Sie MsiRecordSetString, um die Spalte „Name” der Tabelle „_Streams” auf den Namen festzulegen, der in der Spalte CAB-Dateispalte der Medientabelle angezeigt wird. Lassen Sie das Nummernzeichen aus: #.
- Verwenden Sie MsiRecordSetStream, um die Datenspalte der Tabelle „_Streams“ auf die Daten der CAB-Datei festzulegen.
- Verwenden Sie MsiViewModify, um den Datensatz in der Tabelle _Streams zu aktualisieren.
- Um die CAB-Datei „Mycab.cab“ mit Msidb.exe zum Installationspaket „Mydatabase.msi“ hinzuzufügen, verwenden Sie die folgende Befehlszeile: Msidb.exe -d mydatabase.msi -a mycab.cab. In diesem Fall muss die CAB-Spalte der Medientabelle die Zeichenfolge „#mycab.cab“ enthalten.