[解決済み】.NET 4.0は新しいGACを搭載していますが、なぜですか?
質問
%windir%\Microsoft.NET\assembly\
は、新しい
GAC
. .NET 2.0-3.5 アプリケーション用と .NET 4.0 アプリケーション用の 2 つの GAC を管理しなければならなくなったということでしょうか。
問題は、なぜか?
どのように解決するのか?
グローバルアセンブリキャッシュ(GAC)は2つあるので、それぞれを個別に管理する必要があります。
<ブロッククオート.NET Framework 4.0では、GACがいくつか変更されました。GACは2つに分割され、1つは各CLRに対応するようになりました。
.NET Framework 2.0と.NET Framework 3.5の両方で使用されているCLRのバージョンは、CLR 2.0です。以前の2つのフレームワークリリースでは、GACを分割する必要はありませんでした。Net Framework 4.0では、古いアプリケーションが壊れるという問題がある。
CLR 2.0 と CLR 4.0 の間の問題を避けるために、GAC は各ランタイム用のプライベート GAC に分割されました。主な変更点は、CLR v2.0 アプリケーションは GAC 内の CLR v4.0 アセンブリを見ることができなくなったことです。
なぜ?
.NET 4.0ではCLRの変更があったのに、2.0から3.5ではなかったからだと思われます。 1.1→2.0のCLRでも同じことが起こりました。 GACには、同じCLRのものであれば、異なるバージョンのアセンブリを保存する機能があるようです。 古いアプリケーションを壊したくないのだろう。
にてご確認ください。 MSDN 4.0 の GAC の変更について .
<ブロッククオートたとえば、.NET 1.1と.NET 2.0の両方が同じGACを共有している場合、この共有GACからアセンブリをロードする.NET 1.1アプリケーションは、.NET 2.0アセンブリを取得し、それによって.NET 1.1アプリケーションを破壊できることがあります。
.NETで使用されているCLRのバージョンは フレームワーク2.0と.NETフレームワーク3.5 はCLR 2.0です。この結果 前2作では必要なかった フレームワークのリリースでは、GACを分割する必要があります。 古い(この場合 .NET 2.0の場合)アプリケーション Net Framework 4.0で再浮上。 CLR 4.0がリリースされた時点です。それゆえ との干渉問題を回避するため CLR 2.0とCLR 4.0では、GACは現在 各プライベートGACに分割 ランタイムで使用されます。
今後のバージョンアップでCLRが更新されても、同じことが期待できます。 言語が変わるだけなら、同じGACを使うことができます。
関連
-
[解決済み】「The breakpoint will not currently be hit」を改善するには?このドキュメントにはシンボルが読み込まれていません。" という警告はどうすれば改善されますか?
-
[解決済み] Could not find a part of the path ... binroslyncsc.exe
-
[解決済み] データテーブルがすでに別のデータセットに属している
-
[解決済み] C#の正しいバージョン番号を教えてください。
-
[解決済み] .NETでのdecimal, float, doubleの違い?
-
[解決済み] IDisposable インターフェースの正しい使用法
-
[解決済み] なぜList<T>を継承しないのですか?
-
[解決済み] .NET Coreと.NET Standard Class Libraryのプロジェクトタイプの違いは何ですか?
-
[解決済み] Entity FrameworkとLINQ to SQLの比較
-
[解決済み】C# 6.0は.NET 4.0に対応しますか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】XAMLにSystem.Stringを埋め込む
-
[解決済み] CLSID {XXXX} を持つコンポーネントの COM クラスファクトリの取得は、次のエラーにより失敗しました: 80040154。
-
[解決済み] VB.NETでプログラムパスを取得する?
-
[解決済み] VB.NETで線を引く方法
-
[解決済み] .Netの配列のLongLengthの目的は何ですか?
-
[解決済み] csilogfileは何のためにあるのですか?
-
[解決済み] 権限 '*' を持つ SSL/TLS の安全なチャネルを確立できませんでした。
-
[解決済み] .Any() vs .Count() > 0のどちらのメソッドがより良いパフォーマンスを発揮しますか?
-
[解決済み] HashSetとListの性能比較
-
[解決済み】.NETアセンブリーとは何ですか?