これは簡単な質問です。私は .NET 4.5 (現在はベータ版) を使用してソフトウェアを作成しています。このソフトウェアを実行するには、どのバージョンの .NET ランタイムが必要ですか? 4.5ですか?少し古い?
また、.NET 更新プログラムは Windows Update の一部ですか?
4.5 コンパイル済みアセンブリを実行するには、4.5 フレームワークがインストールされている必要があります。4.5 のインストールはインプレース アップグレードであり、4.0 との上位互換性はほとんどありますが、下位互換性はまったくありません。
つまずく可能性のある特定の場所の 1 つは、タイプ フォワーダーです。4.5 フレームワークには、膨大な数の新しいタイプのフォワーダーが含まれています (1,100 以上)。型フォワーダーは、型がアセンブリ A からアセンブリ B に移動したことをアセンブリが宣言する方法です。CLR は、指定された型への参照を A から B にサイレントにリダイレクトします。
ただし、4.5 に対してコンパイルされたアセンブリは、アセンブリ B に存在するかのように型への参照を発行します。その後、そのアセンブリを 4.0 インストールに対して実行すると、型がアセンブリ B にあると想定されますが、そうではありません。結果は型ロード例外になります。
具体例:
static void Main(string[] args)
{
var attrib = new ExtensionAttribute();
Console.WriteLine(attrib);
}
そのコードを 4.5 ボックスでコンパイルしてから、4.0 ボックスで実行してみてください。結果は型ロード例外になります。このExtensionAttribute
型は、4.0 の System.Core から 4.5 の mscorlib に移動しました。
おそらく、より重要な質問は、「.NET 4.5 にはどの OS が必要ですか?」ということです。
まずはインストールページがこちら
http://msdn.microsoft.com/en-us/library/5a4x27ek
最大の問題は、Windows XP で 4.5 を実行できないことです。これは古すぎる (10 年以上)
ためです。したがって、これが環境で問題になる場合は、実行できると思い込まないでください。
4.5には、次のいずれかが必要です。
これは、Metro スタイルのアプリを作成しているかどうかによって異なります。Metro スタイル アプリ (Windows 8) の場合、実際には、.NET 4.5 フレームワークのサブセットと特別な Metro 専用ランタイムを使用しています。他のすべてのアプリの場合、.NET 4.5 は .NET 4.0 ランタイムと追加のライブラリを使用します (.NET 3.0 および .NET 3.5 が .NET 2.0 ランタイムで実行できるのと同様)。
CLR のバージョンは、1.0、1.1、2.0、および 4.0 です。.NET Framework の他のバージョンは、追加の型を提供するだけです。.NET 3 および 3.5 は CLR 2.0 で実行されます。.NET 4.5 は CLR 4 で実行されます。
注: 4.5 アプリを実行するには、引き続き .NET 4.5 が必要です。
.Net 4.0 ランタイム。4.5 は、より多くの .Net ライブラリの利点です。CLR のバージョンは変更されていません。
C# でコーディングする場合、コンパイラは変更されますが、CLR 4.0 IL をコンパイルします。