ICE30
ICE30 überprüft, ob die Installation von Komponenten, die dieselbe Datei enthalten, die Datei nie mehr als einmal im gleichen Verzeichnis installiert.
ICE30 geht an 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 gleichen Zielverzeichnis installiert werden. Schließlich wird mit der Tabelle Datei überprüft, ob keine der Dateien in diesen Komponenten denselben Namen hat.
ICE30 überprüft sowohl lange Dateinamen (Long File Names, LFN) als auch Kurzdateinamen (Short File Names, SFN).
ICE30 wertet Eigenschaften in der Auflösung von Verzeichnissen nicht 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 sich aus zwei Eigenschaften mit dem gleichen Wert ergeben.
Ergebnis
ICE30 gibt eine Fehlermeldung für jedes Komponentenpaar aus, das dieselbe Datei im gleichen 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". Dies unterbricht die Zählung von Komponentenverweisen. | Component1 und Component2 verfügen beide über eine Datei mit dem Namen "READEME.1st". Wenn Kurze Dateinamen verwendet werden, installiert das Installationsprogramm sowohl Dir1 als auch Dir2 im gleichen Verzeichnis, TARGETDIR \ PRODUCT. ICE30 generiert zwei Fehler, einen für jede Datei. In einer Erstellungsumgebung, in der Fehlerspeicherorte angezeigt werden, liegt der erste Fehler am Eintrag einer Datei in der Dateitabelle 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 wird: "Component3" und "Component4". Dadurch würde die Zählung von Komponentenverweisen nicht mehr verwendet werden. | Component4 verfügt über einen Eintrag in der Spalte Bedingung der Component-Tabelle und Component3 nicht. Wenn VersionNT true ist, wird Component4 installiert, und es kommt zu einem Kollisionszusammenstoß mit readme.1st, das immer von Component3 installiert wird. ICE30 generiert vier Fehler, ein Paar für SFN, einen für LFN. |
| WARNUNG: Die Zieldatei "README.1st" kann in "TARGETDIR COMMON TOOLS" von zwei verschiedenen bedingten Komponenten auf einem SFN-System installiert \ werden: "Component4" und "Component5". Wenn sich die Bedingungen nicht gegenseitig ausschließen, unterbricht dies das Komponentenverweiszählsystem. | Da Component4 und Component5 beide Einträge in der Spalte Bedingung der Tabelle Komponente enthalten, tritt dieser Dateikollision möglicherweise nicht auf. ICE30 gibt nur eine Warnung aus, da die Bedingungen zum Zeitpunkt der Installation bestimmt werden müssen. ICE30 generiert vier Warnungen, ein Paar für SFN, eine für LFN. |
Komponententabelle (partiell)
| Komponente | Verzeichnis | Bedingung |
|---|---|---|
| Komponente1 | Dir1 | |
| Component2 | Dir2 | |
| Component3 | Dir3 | |
| Component4 | Dir3 | VersionNT |
| Komponente5 | Dir3 | Version9x |
| Verzeichnis | Übergeordnetes _ Verzeichnis | DefaultDir |
|---|---|---|
| SOURCEDIR | TARGETDIR | |
| Dir1 | SOURCEDIR | Product | Component1 Product:. |
| Dir2 | SOURCEDIR | Produkt:. |
| Dir3 | SOURCEDIR | Allgemeine | allgemeine Tools: |
Dateitabelle (partiell)
| Datei | Komponente_ | FileName |
|---|---|---|
| Datei1 | Komponente1 | README.1st |
| Datei2 | Component2 | README.1st |
| Datei3 | Component3 | README.1st |
| Datei4 | Component4 | README.1st |
| File5 | Komponente5 | README.1st |