ICE30
ICE30 を使用すると、同じファイルを含む各コンポーネントをインストールする際に、そのファイルが同じディレクトリに複数回インストールされないことを検証できます。
ICE30 は、コンポーネント テーブル内にある各コンポーネントに移動してから、ディレクトリ テーブルを基にコンポーネントのターゲット ディレクトリを決定します。 次に、これらのコンポーネントのうち、同じターゲット ディレクトリにインストールされるものを確認します。 最後に、ファイル テーブルを参照して、それらコンポーネント内のファイルを調べ、同じ名前を持つものがないことを確認します。
ICE30 では、長いファイル名 (LFN) と短いファイル名 (SFN) の両方をチェックします。
ICE30 では、ディレクトリを解決する際にプロパティの評価を行いません。実行時にこれらのプロパティが変更され、それによりディレクトリ解決スキームが変わる可能性があるからです。 つまり、ICE30 では、ディレクトリのパス内に同じプロパティが存在することで発生するファイルの競合は検出できますが、2 つのプロパティが同じ値を持つことで発生する競合を検出することはできません。
ICE30 では、同じディレクトリに同じファイルをインストールするコンポーネントのペアごとにエラー メッセージを投稿します。
次の例では、次のエラーがそれぞれ 2 回返されます。
ICE30 のエラーまたは警告 | 説明 |
---|---|
エラー: ターゲット ファイル 'README.1st' は、SFN システム上の 2 つの異なるコンポーネント 'Component1' と 'Component2' によって 'TARGETDIR\PRODUCT' にインストールされます。 これにより、コンポーネント参照カウントが中断されます。 | Component1 と Component2 には、どちらも 'READEME.1st' という名前のファイルがあります。 短いファイル名を使用する場合、このインストーラーでは Dir1 と Dir2 の両方を同じディレクトリ TARGETDIR\PRODUCT にインストールします。 ICE30 ではファイルごとに 1 つずつ、合計 2 つのエラーが生成されます。 エラーの場所を表示する作成環境では、最初のエラーはファイル テーブルにある 1 つ目のファイルのエントリに表示され、2 つ目は他方のファイルの場所に表示されます。 |
エラー: 条件付きコンポーネントをインストールすると、ターゲット ファイル 'README.1st' が LFN システム上の 2 つの異なるコンポーネント 'Component3' と 'Component4' によって 'TARGETDIR\COMMON TOOLS' にインストールされます。 これが行われると、コンポーネント参照のカウントが中断されます。 | Component4 にはコンポーネント テーブルの [条件] 列にエントリがありますが、Component3 にはそれがありません。
VersionNT が True の場合、Component4 がインストールされ、常に Component3 によってインストールされる Readme.1st と競合します。 ICE30 では、4 つのエラーを生成します。SFN の場合が 1 ペア、LFN の場合が 1 ペアです。 |
警告: ターゲット ファイル 'README.1st' は、SFN システム上の 2 つの異なる条件付きコンポーネント 'Component4' と 'Component5' によって 'TARGETDIR\COMMON TOOLS' にインストールされる可能性があります。 条件が相互に排他的でない場合は、コンポーネント参照カウント システムが中断されます。 | Component4 と Component5 の両方がコンポーネント テーブルの [条件] 列にエントリを持っているため、このファイルの競合は発生しない可能性があります。 ICE30 では、インストール時に条件を決定する必要があるため、警告のみを通知します。 ICE30 では、4 つの警告を生成します。SFN の場合が 1 ペア、LFN の場合が 1 ペアです。 |
コンポーネント テーブル (一部)
コンポーネント | ディレクトリ | 条件 |
---|---|---|
Component1 | Dir1 | |
Component2 | Dir2 | |
Component3 | Dir3 | |
Component4 | Dir3 | VersionNT |
Component5 | Dir3 | Version9X |
ディレクトリ | Parent_Directory | DefaultDir |
---|---|---|
SOURCEDIR | TARGETDIR | |
Dir1 | SOURCEDIR | Product|Component1 Product:. |
Dir2 | SOURCEDIR | Product:. |
Dir3 | SOURCEDIR | Common|Common Tools: |
File テーブル (一部分)
ファイル | Component_ | FileName |
---|---|---|
File1 | Component1 | README.1st |
File2 | Component2 | README.1st |
File3 | Component3 | README.1st |
File4 | Component4 | README.1st |
File5 | Component5 | README.1st |