Share via


ICE30

ICE30 verifiziert, dass bei der Installation von Komponenten, die dieselbe Datei enthalten, die Datei nie mehr als einmal im selben Verzeichnis installiert wird.

ICE30 nimmt jede Komponente in der Component-Tabelle und bestimmt dann das Zielverzeichnis der Komponente aus der Directory-Tabelle. Anschließend wird überprüft, welche dieser Komponenten im selben Zielverzeichnis installiert werden. Schließlich wird die File-Tabelle verwendet, um zu verifizieren, dass keine der Dateien in diesen Komponenten denselben Namen hat.

ICE30 überprüft sowohl lange Dateinamen (LFN) als auch kurze Dateinamen (SFN).

ICE30 wertet keine Eigenschaften in der Auflösung von Verzeichnissen aus, da sich diese Eigenschaften zur Laufzeit ändern und das Verzeichnisauflösungsschema ändern können. Dies bedeutet, dass ICE30 Dateikollisionen aufgrund von Verzeichnissen mit derselben Eigenschaft in ihren Pfaden erkennen kann, aber keine Kollisionen erkennt, die aus zwei Eigenschaften mit demselben Wert resultieren.

Ergebnis

ICE30 gibt eine Fehlermeldung für jedes Komponentenpaar aus, das dieselbe Datei im selben Verzeichnis installiert.

Beispiel

Im gezeigten Beispiel wird jeder der folgenden Fehler zweimal zurückgegeben.

ICE30-Fehler oder -Warnung BESCHREIBUNG
FEHLER: Die Zieldatei „README.1st“ wird in „TARGETDIR\PRODUCT“ von zwei verschiedenen Komponenten auf einem SFN-System installiert: „Component1“ und „Component2“. Dadurch wird die Komponentenverweiszählung unterbrochen. Component1 und Component2 verfügen beide über eine Datei namens „READEME.1st“. Bei Verwendung kurzer Dateinamen installiert das Installationsprogramm sowohl Dir1 als auch Dir2 im selben Verzeichnis, „TARGETDIR\PRODUCT“.
ICE30 generiert zwei Fehler, einen für jede Datei. In einer Erstellungsumgebung, in der Fehlerspeicherorte angezeigt werden, befindet sich der erste Fehler beim Eintrag der einen Datei in der File-Tabelle und der zweite am Speicherort der anderen Datei.
FEHLER: Die Installation einer bedingten Komponente würde dazu führen, dass die Zieldatei „README.1st“ in „TARGETDIR\COMMON TOOLS“ von zwei verschiedenen Komponenten auf einem LFN-System installiert würde: „Component3“ und „Component4“. Dadurch würde die Komponentenverweiszählung unterbrochen. Component4 verfügt über einen Eintrag in der Condition-Spalte der Component-Tabelle und Component3 nicht. Wenn VersionNT „True“ ist, wird Component4 installiert, und es kommt zu einer Kollision mit der „Readme.1st“, die immer von Component3 installiert wird.
ICE30 generiert vier Fehler, ein Paar für SFN, eins für LFN.
WARNUNG: Die Zieldatei „README.1st“ wurde möglicherweise in „TARGETDIR\COMMON TOOLS“ von zwei verschiedenen bedingten Komponenten auf einem SFN-System installiert: „Component4“ und „Component5“. Wenn sich die Bedingungen nicht gegenseitig ausschließen, unterbricht dies das System für die Komponentenverweiszählung. Da Component4 und Component5 beide Einträge in der Condition-Spalte der Component-Tabelle aufweisen, tritt diese Dateikollision möglicherweise nicht auf. ICE30 gibt nur eine Warnung aus, da die Bedingungen zum Zeitpunkt der Installation ermittelt werden müssen.
ICE30 generiert vier Warnungen, ein Paar für SFN, eins für LFN.

 

Component-Tabelle (teilweise)

Komponente Verzeichnis Bedingung
Component1 Dir1
Component2 Dir2
Component3 Dir3
Component4 Dir3 VersionNT
Component5 Dir3 Version9X

 

Verzeichnistabelle

Verzeichnis Parent_Directory DefaultDir
SOURCEDIR   TARGETDIR
Dir1 SOURCEDIR Product|Component1 Product:.
Dir2 SOURCEDIR Product:.
Dir3 SOURCEDIR Common|Common Tools:

 

File-Tabelle (teilweise)

Datei Component_ FileName
Datei1 Component1 README.1st
Datei2 Component2 README.1st
Datei3 Component3 README.1st
Datei4 Component4 README.1st
Datei5 Component5 README.1st

 

ICE-Referenz