ICE92

ICE92 は、コンポーネント ID GUID を持たないコンポーネントが永続コンポーネントとしても指定されていないことを確認します。 この ICE カスタム アクションは、ComponentId フィールドに GUID が指定されていないコンポーネントがないか Component テーブルを確認します。また、Attributes フィールドに msidbComponentAttributesPermanent フラグが設定されていないことを確認します。 また、ICE92 は、msidbComponentAttributesPermanentmsidbComponentAttributesUninstallOnSupersedence の両方の属性を持つコンポーネントがないことも確認します。

ComponentId 列が null の場合、インストーラーでコンポーネントは登録されません。また、インストーラーを使ってコンポーネントを削除または修復することはできません。

結果

ICE92 は次のエラーを投稿します。

ICE92 エラー 説明
Component '[1]' には ComponentId がありません。また、永続的とマークされています。 Component テーブルのこのコンポーネントのエントリには、ComponentId 列に null があり、Attributes 列に msidbComponentAttributesPermanent があります。

 

ICE92 は次の警告を投稿します。

ICE92 警告 説明
Component '[1]' は、永続的、かつ置き換え時のアンインストールとマークされています。 コンポーネントは永続的であるため、uninstall-on-supersedence 属性は無視されます。 Component テーブルのこのコンポーネントのエントリには、msidbComponentAttributesPermanentmsidbComponentAttributesUninstallOnSupersedence の両方の属性が指定されています。

 

ICE92 は、次の例のようなエラーを報告します。

The Component 'Component1' has no ComponentId and is marked as permanent.

Component テーブル (部分)

コンポーネント ComponentId Directory_ 属性 KeyPath
Component1   DirectoryA 16 FileA

 

ICE リファレンス