ICE38

ICE38 は、現在のユーザー プロファイルの下にインストールされるすべてのコンポーネントが、Component テーブルの KeyPath 列の HKEY_CURRENT_USER ルート以下にあるレジストリ キーも指定していることを確認します。

結果

ユーザーのプロファイルにインストールされたコンポーネントが HKCU レジストリ キーを指定していない場合、ICE38 はエラーを投稿します。

ICE38 は、次のサンプルのようなエラーを報告します。

ICE38 エラー 説明
コンポーネント Component1 はユーザー プロファイルにインストールされます。 ファイルではなく、HKCU の下のレジストリ キーを KeyPath として使う必要があります。 Component1 の属性列の値は 0 です。これは、コンポーネントでファイルを KeyPath として使う必要があることを意味します。 このため、複数のユーザーが同じコンピューターにコンポーネントをインストールすると、問題が発生します。 Component1 のこのエラーを修正するには、Component テーブルの Attributes 列に RegistryKeyPath ビットを設定し、KeyPath 列のエントリを Registry テーブルの Registry 列に登録されている値に変更します。
コンポーネント Component2 がユーザー プロファイルにインストールされます。 HKCU の下のレジストリ キーを KeyPath として使う必要があります。 KeyPath は現在 NULL です。 Component2 では、Component テーブルの Attributes 列に RegistryKeyPath ビットが設定されています。 そのため、KeyPath フィールドには Registry テーブルの Registry 列のキーを含める必要がありますが、KeyPath 列は Null です。 このエラーを解決するには、KeyPath 値を Registry テーブルの有効なエントリに変更します。
コンポーネント Component3 はユーザー プロファイルにインストールされます。 その KeyPath レジストリ キーは HKCU 以下にある必要があります。 Component3 では、Component テーブルの Attributes 列に RegistryKeyPath ビットが設定されていますが、Registry テーブルの Root 列に指定されているレジストリ エントリのルートには HKEY_CURRENT_USER ではなく HKEY_LOCAL_MACHINE が指定されています。 このエラーを修正するには、このコンポーネントの KeyPath として HKEY_LOCAL_MACHINE 以下の有効なレジストリ エントリを使うか、Registry テーブルの Root 列の値を - 1 または 1 に変更します。
コンポーネント Component4 の KeyPath レジストリ エントリが存在しません。 Component4 では、Component テーブルの Attributes 列に RegistryKeyPath ビットが設定されていますが、KeyPath 列のエントリが Registry テーブルに存在しません。 このエラーを修正するには、HKEY_CURRENT_USER 以下にあるレジストリ テーブルに Reg4 のエントリを追加します。
コンポーネント Component5 の KeyPath としてレジストリ エントリ Reg5 が設定されていますが、そのレジストリ エントリは Component5 に属していません。 コンポーネントの KeyPath 列で参照されているレジストリ エントリが見つかり、HKCU ツリーの下にありますが、そのレジストリ エントリの Component_ 列で、それが KeyPath として指定されているのと同じコンポーネントが参照されていません。 つまり、コンポーネントの KeyPath として使われているレジストリ エントリは、他のコンポーネントがインストールされた場合にのみ作成されます。 このエラーを解決するには、そのコンポーネントに属しているレジストリ エントリを参照するように KeyPath の値を変更するか、レジストリ エントリを KeyPath としてそれを使っているコンポーネントに属するように変更します。

 

Directory テーブル (部分)

ディレクトリ Directory_Parent DefaultDir
Dir1 StartMenuFolder
Dir2 DesktopFolder
Dir3 Dir3 AppData
Dir4 Dir3 SubDir

 

Component テーブル (部分)

コンポーネント Directory_ 属性 KeyPath
Component1 Dir1 0 File1
Component2 Dir2 4
Component3 Dir3 4 Reg3
Component4 Dir4 4 Reg4
Component5 Dir5 4 Reg5

 

Registry テーブル (部分)

レジストリ Root Component_
Reg3 2 Component3
Reg5 0 Component4

 

ICE リファレンス