アセンブリをグローバル アセンブリ キャッシュにインストール
Windows インストーラーでは、Microsoft .NET Framework を使用して共通言語ランタイム アセンブリがグローバル アセンブリ キャッシュにインストールされます。 アセンブリをグローバル アセンブリ キャッシュにインストールするとき、インストーラーは、通常の Windows インストーラー コンポーネントをインストールする際に使用するのと同じディレクトリ構造とファイル バージョン規則を使用できません。 通常の Windows インストーラー コンポーネントは、異なる製品ごとに複数のディレクトリの場所にインストールされる場合があります。 アセンブリがアセンブリ キャッシュ内に存在できるのは 1 回だけです。 各アセンブリは、分割できないものとしてアセンブリ キャッシュで追加および削除されます。つまり、アセンブリを構成するファイルは常にまとめてインストールまたは削除されます。
通常の Windows インストーラー コンポーネントと共通言語ランタイム アセンブリのディスク コストの計算方法は異なります。 通常の Windows インストーラー コンポーネントの合計ディスク コストには、ローカル コスト、ソース コスト、および削除コストが含まれます。 詳細については、「ファイルのコスト処理」を参照してください。 この方法は、共通言語ランタイム アセンブリのコスト処理には使用できません。これらには Windows インストーラー以外のクライアントが存在する可能性があるためです。 共通言語ランタイム アセンブリのコストは、Microsoft .NET Framework 共通言語ランタイムに対してクエリを実行して決定する必要があります。
Windows インストーラーは、2 段階のトランザクション プロセスを使用して、共通言語ランタイム アセンブリを含む製品をインストールします。 これでアセンブリのインストールと削除のロールバックが可能になります。 詳細については、「グローバル アセンブリ キャッシュ内のアセンブリのロールバック」を参照してください。
ユーザーごとのインストール コンテキストのインストールによってグローバル アセンブリ キャッシュにインストールされるアセンブリは、Windows ファイル保護によって保護されることに注意してください。 マシンごとのインストール コンテキストのインストールによってグローバル アセンブリ キャッシュにインストールされるアセンブリは、Windows リソース保護によって保護されます。