次の方法で共有


IsolatedComponent テーブル

IsolatedComponent テーブルの各レコードは、Component_Application 列で指定されたコンポーネント (通常は .exe) と Component_Shared 列で指定されたコンポーネント (通常は共有 DLL) を関連付けます。 IsolateComponents アクションでは、Component_Shared のコピーを、Component_Application で使用するためのプライベートな場所にインストールします。 これにより、コンピューター上の共有の場所にインストールできる Component_Shared の他のコピーから、Component_Application が分離されます。 「分離されたコンポーネント」を参照してください。

1 つの Component_Shared を複数の Component_Application にリンクするには、IsolatedComponents テーブルに、ペアごとに個別のレコードを含めます。 インストーラーにより、Component_Shared のファイルが、インストールされている各 Component_Application のディレクトリにコピーされます。

IsolatedComponent テーブルには以下の列があります。

Column 種類 キー Nullable
Component_Shared Identifier Y N
Component_Application Identifier Y N

 

[列]

Component_Shared

Component テーブルへの外部キー。 共有ファイル (通常は DLL) を含むコンポーネント。 DLL は、このコンポーネントのキー ファイルである必要があります。 これは、Component_Application 列に表示されるコンポーネントとは異なるコンポーネントである必要があります。

共有コンポーネントでは、コンポーネントのすべての分離コピーの登録が制御され、Component テーブルの Attributes 列に msidbComponentAttributesSharedDllRefCount フラグを設定する必要があります。 これにより、インストーラーで共有コンポーネントのライフサイクルを管理できるようになります。

Component_Application

Component テーブルへの外部キー。 共有ファイルを読み込む .exe を含むコンポーネント。 .exe は、このコンポーネントのキー ファイルである必要があります。 これは、Component_Shared 列に表示されるコンポーネントとは異なるコンポーネントである必要があります。

検証

ICE03
ICE06
ICE32
ICE62
ICE66
ICE97