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.
ICE30 gibt eine Fehlermeldung für jedes Komponentenpaar aus, das dieselbe Datei im selben Verzeichnis installiert.
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 |
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 |