.NET 4.5はCLRの新しいバージョンを導入しますか?
質問
過去には、.NETのすべての新しいバージョンにCLRの新しいバージョンが付属しているわけではありません。 .NET 1.0、1.1、2.0、および4.0が行ったことは知っていますが、.NET 3.0と3.5はそうではありませんでした。
.NET 4.5は新しいCLRを導入しますか?そして、新しいCLRがあるかどうかはどのようにわかりますか?
解決
はい、.NET 4.5には、CLRの新しいバージョンスパンキングのブランドがあり、での改善について読むことができます。
明確にするために;これは実際にCLRの新しいバージョンです 交換 4.0のものなので、更新と呼ぶか、新しいCLRと呼ぶかは議論の余地があります。
実行中のCLRバージョンを確認するには、使用してください
System.Runtime.InteropServices.RuntimeEnvironment.GetSystemVersion()
他のヒント
いいえ、まだバージョン4.0.30319です。 clr.dllと友人の新しい改訂は、マシン上の既存のものを置き換えます。 .NET 3.0、3.5、および3.5SP1で使用される同じスキーム。 4.5がインストールされているかどうかを確認するには、それらのバージョンと同じアプローチが必要です。 レジストリを確認してください.
はい。 CLR変更のバージョン から 4.0.30319.269
に 4.0.30319.17379
. 。したがって、CLRは新しいですが、.NET 4.0 CLRとは後方互換性があります。 .NET v4.0のために記述され、コンパイルされたコードを再コンパイルする必要はありません。
から .NETフレームワークバージョンと依存関係 MSDNのページ:
.NETフレームワーク4.5 RCは、コンピューターの.NETフレームワーク4を置き換えるインプレースアップデートです。この更新をインストールした後、.NETフレームワーク4アプリは、再コンパイルを必要とせずに実行を続ける必要があります。ただし、.NETフレームワークの一部の変更には、アプリコードの変更が必要になる場合があります。
さらに、から .NETフレームワークブログ:
.NET Framework 4.5は、.NET Framework 4を置き換えるインプレースアップデートです(並べてインストールではなく)。私たちの目標は、.NET 4.5が.NET 4用に構築されたアプリケーションと完全に後方互換性を持つことです。
いくつかの変更があります いいえ 後方互換性。を参照してください .NETフレームワーク4.5 RCのアプリケーション互換性 MSDNのページ。
Microsoftからの公式ガイダンス、および優れたコーディングプラクティスは、CLRの特定のバージョンを検出しないことです。むしろ、特定の機能が存在するかどうかを検出する必要があります。それ以外の
public static bool IsDotNet45()
{
return Environment.Version.Major == 4 &&
Environment.Version.Revision > 17000;
}
次のようなことをします:
public static bool SupportsReflectionContext()
{
// Class "ReflectionContext" exists from .NET 4.5 onwards.
return Type.GetType("System.Reflection.ReflectionContext", false) != null;
}
これが質問の時点で現在の形式で利用できるとは思わないが、ここに CLRガイド MSDNでは、すべてのフレームワークバージョンとそれらに含まれるCLRバージョンを表示します。私はそれが非常に役立つと思ったので、私は共有すると思いました。
の隣に .NET 4.5 それには含まれると述べています CLR 4.
.NET 4および.NET 4.5(4.5.1および4.5.2を含む)はCLRバージョン4.0にあります
もっと詳しく: https://msdn.microsoft.com/en-us/library/8bs2ecf4(v=vs.110).aspx
.NETフレームワーク4.5は、いくつかの追加機能を備えた.NETフレームワーク4へのサービスパックのようなものです。
Scott Hanselmanは、この質問に対処する彼のブログに投稿をしています。あなたはそれについてここで知ることができます:
http://www.hanselman.com/blog/netversioningandmultitargetingnet45isaninplaceupgradetonet40.aspx
それ以外は、パフォーマンスを改善し、新しいライブラリを追加するCLRに更新があることです。 .NET 4.5で使用されるCLRは、.NET 4と互換性があります。これは、マイナーアップデートと見なされます。これらのマイナーアップデートは、Microsoftがインプレイスアップデートと呼んでいるものです。