次の方法で共有


ICE62

ICE62 は、予期しない動作を引き起こす可能性のあるデータについて、IsolatedComponent テーブル に対して広範なチェックを実行します。

ICE62 によって報告されたエラーを修正しないと、さまざまな方法で分離コンポーネント システムが故障する可能性があります。 たとえば、SharedDllRefCount ビットが共有コンポーネントに設定されていない場合、別のアプリケーションがその ComponentId を使用してアンインストールされたときに、コンポーネントの登録を削除できます。

結果

ICE62 は、予期しない動作が発生する可能性がある IsolatedComponent テーブル内のデータを検出すると、警告またはエラーを投稿します。

ICE62 は、次のエラーと警告を示す例を報告します。

The component 'Component2' is listed as an isolated application 
component in the IsolatedComponent table, but the key path is not a file.

Component2 は、コンポーネント 1 を分離するためのアプリケーション コンポーネントとして一覧表示されます。 ただし、Component2 にはレジストリ キー パスがあり、コンポーネントの分離に使用する有効な実行可能パスは提供されません。

このエラーを修正するには、分離コンポーネント Component1 のアプリケーションとして別のコンポーネントを使用します。

The component 'Component1' is listed as an isolated shared component in the 
IsolatedComponent table, but is not marked with the SharedDllRefCount component attribute.

Component1 は分離された共有コンポーネントとして一覧表示されますが、SharedDllRefCount ビットが設定されていません。 これにより、コンポーネントの有効期間が間違っている可能性があります。 別のアプリケーションがこのコンポーネントを使用して (分離またはアンインストールされていない) 場合、コンポーネントの登録は削除されますが、このアプリケーションの分離コピーは残ります。 これにより、修復とアンインストールの問題が発生します。

このエラーを解決するには、コンポーネントの SharedDllRefCount ビットを設定します。

The isolated shared component 'Component1' is not installed by the same feature as 
(or a parent feature of) its isolated application component 'Component2' (which is installed by feature 'Feature2').

Component1 と Component2 は、さまざまな機能によってインストールされます。 Component1 は Feature1 によってインストールされ、Component2 は Feature2 によってインストールされます。 Feature1 は Feature2 の親ではないため、アプリケーションをインストールすることはできますが、分離されたコンポーネントはインストールできず、分離が中断される可能性があります。

このエラーを解決するには、Component1 をインストールする機能と同じ機能 (またはコンポーネント 2 の親機能) にリンクしている FeatureComponents テーブルにエントリを追加します。

WARNING: The isolated shared component 'Component1' (referenced in the IsolatedComponent table) 
is conditionalized. Isolated shared component conditions should never change from TRUE to FALSE after the first install of the product.

Component1 には、Component テーブルに条件があります。 コンピューターへのインストールの有効期間中にこの条件が TRUE から FALSE に変わると、登録情報なしで分離されたコンポーネントが孤立する可能性があります。

この警告を修正するには、条件を削除するか、条件を作成して TRUE から FALSE に変更できないようにします。

WARNING: The isolated shared component 'Component1' is shared by multiple applications 
(including 'Component2') that are installed to the directory 'TARGETDIR'.
WARNING: The isolated shared component 'Component1' is shared by multiple applications 
(including 'Component3') that are installed to the directory 'TARGETDIR'.

Component1 は Component2 と Component3 の両方で分離され、2 つのコンポーネントも同じディレクトリにインストールされます。 アプリケーションは分離コンポーネントを共有しますが、1 つのアプリケーションが削除されると、共有コンポーネントも削除され、他のアプリケーションは分離されたコンポーネントを失います。

この警告を修正するには、アプリケーションを別のディレクトリにインストールするか、一部のアプリケーションで分離されたコンポーネントが本当に必要かどうかを確認します。

IsolatedComponent テーブル

Component_Shared Component_Application
Component1 Component2
Component1 Component3

 

コンポーネント テーブルの

コンポーネント ComponentId ディレクトリ_ 属性 条件 KeyPath
Component1 Dir1 0 MYCONDITION File1
Component2 TARGETDIR 4 Registry2
Component3 TARGETDIR 0 File3

 

FeatureComponentsTable

特徴_ コンポーネント_
Feature1 Component1
Feature2 Component2
Feature1 Component3

 

フィーチャー テーブルの (一部)

特徴 Feature_Parent
Feature1
Feature2

 

ICE リファレンス