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 列に表示されるコンポーネントとは異なるコンポーネントである必要があります。
検証