ICE35

ICE35 verifiziert, dass Komponenten, die in einer CAB-Datei gespeicherte komprimierte Dateien enthalten, nicht auf Ausführung aus der Quelle festgelegt sind. Bei Windows Installer 2.0 oder höher wurde diese Einschränkung entfernt.

ICE35 fragt die Cabinet-Spalte der Media-Tabelle ab, um zu ermitteln, welche Dateien komprimiert und in einer CAB-Datei gespeichert sind. Er fragt die File-Tabelle ab, um zu ermitteln, welche Komponenten diese Dateien enthalten. Schließlich wird die Component-Tabelle überprüft, um zu ermitteln, ob die „run-from-source“-Bits (aus Quelle ausführen) in der Attributes-Spalte festgelegt sind.

Ergebnis

ICE35 gibt eine Fehlermeldung aus, wenn eine komprimierte Datei in einer CAB-Datei gespeichert ist, die zu einer Komponente gehört, deren msidbComponentAttributesSourceOnly-Bit in der Attributes-Spalte der Component-Tabelle festgelegt ist. Bei Windows Installer 2.0 oder höher wurde dies von einem Fehler in eine Warnmeldung geändert. Bei einem Paket, das nur Windows Installer 2.0 und höher unterstützt, ist die PID_PAGECOUNT-Eigenschaft des Zusammenfassungsinformations-Datenstroms auf einen Wert von mindestens 200 festgelegt.

ICE35 gibt eine Warnmeldung aus, wenn eine komprimierte Datei in einer CAB-Datei gespeichert ist, die zu einer Komponente gehört, deren msidbComponentAttributesOptional-Bit in der Attributes-Spalte der Component-Tabelle festgelegt ist. Diese Warnmeldung wurde bei Windows Installer 2.0 und höher entfernt.

Wenn sich mehrere Dateien in einer Komponente in einer CAB-Datei befinden, meldet ICE35 Fehler für jede Datei, für die das „run-from-source“-Bit (aus Quelle ausführen) festgelegt ist.

Beispiel

ICE35 meldet die folgenden Fehler und Warnungen für das gezeigte Beispiel, in dem eine frühere Version als Windows Installer 2.0 verwendet wird.

ICE35-Fehler BESCHREIBUNG
FEHLER: Komponente Component3 kann nicht nur „run-from-source“ (aus Quelle ausführen) sein, weil ihre Memberdatei „File3“ komprimiert ist. Es gibt eine komprimierte Datei, die in einer CAB-Datei gespeichert ist, und diese Datei gehört zu einer Komponente, deren SourceOnly-Bit in der Attributes-Spalte der Component-Tabelle festgelegt ist. Um diesen Fehler zu beheben, ändern Sie die unteren 2 Bits des Attributes-Werts von Component2 in „00“, was „Nur lokal“ (Local only) bedeutet, oder entfernen Sie File4 aus der CAB-Datei.
FEHLER: Komponente Component3 kann nicht nur „run-from-source“ (aus Quelle ausführen) sein, weil ihre Memberdatei „File3“ komprimiert ist. Es gibt eine komprimierte Datei, die in einer CAB-Datei gespeichert ist, und diese Datei gehört zu einer Komponente, deren SourceOnly-Bit in der Attributes-Spalte der Component-Tabelle festgelegt ist. Da die Dateien in einer Komponente nicht alle aus demselben Medium stammen müssen, meldet ICE35 Fehler für jede Datei in der Komponente, die sich in einer CAB-Datei befindet.
Um diesen Fehler zu beheben, ändern Sie die unteren 2 Bits des Attributes-Werts von Component2 in „00“, was „Nur lokal“ (Local only) bedeutet, oder entfernen Sie File4 aus der CAB-Datei.

 

Media-Tabelle (teilweise)

DiskID LastSequence Cabinet
1 2  
2 4 One.cab
3 5 #Two.cab

 

File-Tabelle (teilweise)

Datei Component_ Sequenz
Datei1 Component1 1
Datei2 Component2 2
Datei3 Component2 3
Datei4 Component3 4
Datei5 Component3 5

 

Component-Tabelle (teilweise)

Komponente Attribute
Component1 0
Component2 2
Component3 1

 

Shortcut-Tabelle (teilweise)

Verknüpfung Icon_
Shortcut1 Icon2

 

Beachten Sie, dass Dateien auch mit der Word Count Summary-Eigenschaft des Zusammenfassungsinformations-Datenstroms als komprimiert markiert werden können.

ICE-Referenz