IsolateComponents アクション

IsolateComponents アクションを使うと、コンポーネント (通常は共有 DLL) のコピーを特定のアプリケーション (通常は .exe) に使われる非公開の場所にインストールできます。 これにより、コンピューター上の共有の場所にインストールされる可能性があるコンポーネントの他のコピーから、アプリケーションを分離することができます。 詳細については、「分離されたコンポーネント」を参照してください。

このアクションは IsolatedComponent テーブルの各レコードを参照し、Component_Shared フィールドに列挙されたコンポーネントのファイルを Component_Application フィールドに列挙されたコンポーネントに関連付けます。 インストーラーにより、Component_Shared のファイルは Component_Application と同じディレクトリにインストールされます。 インストーラーにより、このディレクトリに長さが 0 バイトのファイルが生成されます。Component_Application のキー ファイルの短いファイル名 (通常は .exe と同じファイル名) に .local が付加された名前です。 IsolatedComponent アクションは Component_Application のインストールには影響しません。 Component_Application をアンインストールすると、ディレクトリから Component_Shared ファイルと .local ファイルが削除されます。

シーケンスの制限

IsolateComponents アクションは、InstallUISequence テーブルInstallExecuteSequence テーブルでのみ使用できます。 このアクションは、CostInitialize アクションの後、かつ CostFinalize アクションの前に配置する必要があります。

ActionData メッセージ

ActionData のメッセージはありません。

解説

IsolateComponents アクションの Condition 列が True に評価されるか、空白のままの場合、IsolatedComponent テーブルに列挙されているすべてのコンポーネントはインストーラーによって分離されます。 Condition 列が False に評価されると、インストーラーによって IsolatedComponent テーブルは無視され、通常どおりコンポーネントが共有されます。 RedirectedDllSupport プロパティは、このアクションに条件を指定するために使用できます。 詳細については、「シーケンス テーブルの使用」を参照してください。