Freigeben über


Einbeziehen einer CAB-Datei in eine Installation

In diesem Abschnitt wird beschrieben, wie CAB-Dateien in Installationen einbezogen werden. Weitere Informationen finden Sie unter Verwenden von CAB-Dateien und komprimierten Quellen.

So beziehen Sie eine CAB-Datei in ein Installationspaket ein

  1. Verwenden Sie ein CAB-Erstellungstool, um die Quelldateien in einer CAB-Datei zu komprimieren. Weitere Informationen finden Sie unter CAB-Dateien.
  2. Die CAB-Datei muss sich entweder in einem Datenstrom innerhalb der MSI-Datei oder in einer separaten CAB-Datei befinden, die sich wiederum im Stammverzeichnis der in der Directory-Tabelle angegebenen Quellstruktur befindet.
  3. Bestimmen Sie, ob es sich bei der Quelle um einen komprimierten oder um einen gemischten Typ handeln soll, der sowohl nicht komprimierte als auch komprimierte Dateien enthält. Weitere Informationen dazu finden Sie unter Komprimierte und nicht komprimierte Quellen. Legen Sie je nach Typ des Quellabbilds die komprimierten oder nicht komprimierten Flagbits der Word Count Summary-Eigenschaft Property fest.
  4. Fügen Sie der File-Tabelle für jede Datei in der CAB-Datei einen Datensatz hinzu. Geben Sie in der File-Spalte einen Dateischlüssel ein, der genau dem Dateischlüssel der Datei in der CAB-Datei entspricht. Bei den Dateischlüsseln ist die Groß-/Kleinschreibung zu beachten. Die Dateiinstallationssequenz in der File-Tabelle und der CAB-Datei muss ebenfalls identisch sein. Die Dateisequenz wird durch die Sequenznummer in der Sequence-Spalte angegeben. Gehen Sie wie folgt vor, um die Sequenznummer für die erste Datei in der CAB-Datei aufzurufen. Suchen Sie den vorhandenen Datensatz in der Media-Tabelle mit dem größten Wert in der DiskID-Spalte. Das LastSequence-Feld dieses Datensatzes gibt die zuletzt auf dem Medium verwendete Dateisequenznummer an. Weisen Sie in der File-Tabelle der ersten Datei der neuen CAB-Datei eine Sequenznummer zu, die größer als diese ist. Weisen Sie allen verbleibenden Dateien Sequenznummern in der gleichen Reihenfolge wie in der CAB-Datei zu. Eine Beschreibung der verbleibenden Datensatzfelder finden Sie unter File-Tabelle.
  5. Fügen Sie der Media-Tabelle für die CAB-Datei einen Datensatz hinzu. Geben Sie im DiskID-Feld dieses neuen Datensatzes einen Wert an, der größer als der größte DiskID-Wert ist, der bereits in der Tabelle vorhanden ist. Geben Sie den Namen der CAB-Datei in das Feld „Cabinet“ ein. Dieser Name muss in Form eines CAB-Datentyps vorliegen. Stellen Sie dem Namen ein Nummernzeichen „#“ voran, wenn es sich bei der CAB-Datei um einen Datenstrom handelt, der in der MSI-Datei gespeichert ist. Beachten Sie, dass beim Namen der CAB-Datei die Groß-/Kleinschreibung unterschieden wird, wenn es sich bei der CAB-Datei um einen Datenstrom handelt. Wenn es sich bei der CAB-Datei um eine separate Datei handelt, wird beim Namen der Datei die Groß-/Kleinschreibung nicht beachtet.
  6. Ermitteln Sie die größte Dateisequenznummer in der neuen CAB-Datei, indem Sie die Sequence-Spalte der aktualisierten File-Tabelle überprüfen. Geben Sie einen größeren Wert als diesen in das LastSequence-Feld des neuen Datensatzes der Media-Tabelle ein. Eine Beschreibung der verbleibenden Datensatzfelder finden Sie unter Media-Tabelle.
  7. Sie können die CAB-Datei im Installationspaket speichern, indem Sie entweder ein Tool wie Msidb.exe oder die Datenbankfunktionen des Installers verwenden. In den folgenden vier Schritten wird erläutert, wie Sie die CAB-Datei aus einem Programm mithilfe der Datenbankfunktionen hinzufügen.
  8. Um die CAB-Datei aus einem Programm dem Installationspaket hinzuzufügen, öffnen Sie mithilfe von MsiDatabaseOpenView eine Ansicht für die _Streams-Tabelle der Datenbank.
  9. Verwenden Sie MsiRecordSetString, um die Name-Spalte der _Streams-Tabelle auf den Namen festzulegen, der in der Cabinet-Spalte der Media-Tabelle angezeigt wird. Lassen Sie das Zahlenzeichen weg: #.
  10. Verwenden Sie MsiRecordSetStream, um die Data-Spalte der _Streams-Tabelle auf die Daten der CAB-Datei festzulegen.
  11. Verwenden Sie MsiViewModify, um den Datensatz in der _Streams-Tabelle zu aktualisieren.
  12. Wenn Sie Msidb.exe verwenden möchten, um die CAB-Datei „Mycab.cab“ dem Installationspaket „Mydatabase.msi“ hinzuzufügen, verwenden Sie die folgende Befehlszeile: Msidb.exe -d mydatabase.msi -a mycab.cab. In diesem Fall sollte die Cabinet-Spalte der Media-Tabelle die Zeichenfolge enthalten: #mycab.cab.