ICE92
ICE92 は、コンポーネント ID GUID を持たないコンポーネントが永続コンポーネントとしても指定されていないことを確認します。 この ICE カスタム アクションは、ComponentId フィールドに GUID が指定されていないコンポーネントがないか Component テーブルを確認します。また、Attributes フィールドに msidbComponentAttributesPermanent フラグが設定されていないことを確認します。 また、ICE92 は、msidbComponentAttributesPermanent と msidbComponentAttributesUninstallOnSupersedence の両方の属性を持つコンポーネントがないことも確認します。
ComponentId 列が null の場合、インストーラーでコンポーネントは登録されません。また、インストーラーを使ってコンポーネントを削除または修復することはできません。
ICE92 は次のエラーを投稿します。
ICE92 エラー | 説明 |
---|---|
Component '[1]' には ComponentId がありません。また、永続的とマークされています。 | Component テーブルのこのコンポーネントのエントリには、ComponentId 列に null があり、Attributes 列に msidbComponentAttributesPermanent があります。 |
ICE92 は次の警告を投稿します。
ICE92 警告 | 説明 |
---|---|
Component '[1]' は、永続的、かつ置き換え時のアンインストールとマークされています。 コンポーネントは永続的であるため、uninstall-on-supersedence 属性は無視されます。 | Component テーブルのこのコンポーネントのエントリには、msidbComponentAttributesPermanent と msidbComponentAttributesUninstallOnSupersedence の両方の属性が指定されています。 |
ICE92 は、次の例のようなエラーを報告します。
The Component 'Component1' has no ComponentId and is marked as permanent.
Component テーブル (部分)
コンポーネント | ComponentId | Directory_ | 属性 | KeyPath |
---|---|---|---|---|
Component1 | DirectoryA | 16 | FileA |