Wird .NET 4.5 eine neue Version des CLR einführen?
Frage
In der Vergangenheit kam nicht jede neue Version von .NET mit einer neuen Version der CLR. Ich kenne .NET 1.0, 1.1, 2.0 und 4.0, aber .NET 3.0 und 3.5 nicht.
Wird .NET 4.5 eine neue CLR einführen? Und wie sagt man, ob es eine neue CLR gibt?
Lösung
Ja, .NET 4.5 verfügt über eine Marke, die neue Version des CLR verprügelt. Sie können über die Verbesserungen bei lesen.
Um klarzustellen; Dies ist eine neue Version der CLR, die tatsächlich tatsächlich ersetzt Das 4.0, das also ein Update oder eine neue CLR nennt, ist umstritten.
Um festzustellen, unter welcher CLR -Version Sie laufen, verwenden Sie
System.Runtime.InteropServices.RuntimeEnvironment.GetSystemVersion()
Andere Tipps
Nein, es ist immer noch Version 4.0.30319. Die neue Überarbeitung von CLR.Dll und Freunden ersetzt die vorhandenen auf Ihrer Maschine. Gleiches Schema wie in .NET 3.0, 3.5 und 3.5SP1 verwendet. Überprüfen Sie, ob 4.5 installiert ist Überprüfen Sie die Registrierung.
Ja. Das Version der CLR ändert sich aus 4.0.30319.269
zu 4.0.30319.17379
. Die CLR ist also neu, aber es ist rückwärtskompatibel mit dem .NET 4.0 CLR. Sie sollten keinen von .NET v4.0 geschriebenen Code erneut kompilieren und zusammenstellen.
Von dem .NET Framework -Versionen und Abhängigkeiten Seite zu MSDN:
Das .NET Framework 4.5 RC ist ein In-Place-Update, das das .NET Framework 4 auf Ihrem Computer ersetzt. Nachdem Sie dieses Update installiert haben, sollten Ihre .NET Framework 4 Apps weiter ausgeführt werden, ohne dass eine Neukompilation erforderlich ist. Einige Änderungen im .NET -Framework erfordern jedoch möglicherweise Änderungen an Ihrem App -Code.
Zusätzlich von der .NET Framework Blog:
.NET Framework 4.5 ist ein In-Place-Update, das .NET Framework 4 (und nicht eine Side-by-Side-Installation) ersetzt. Unser Ziel ist es, dass .NET 4.5 mit Anwendungen, die für .NET 4 erstellt wurden
Es gibt einige Änderungen, die sind nicht rückwärts kompatibel. Siehe das Anwendungskompatibilität im .NET Framework 4.5 RC Seite zu MSDN.
Die offizielle Anleitung von Microsoft und gute Codierungspraxis besteht nicht darin, bestimmte Versionen des CLR zu erkennen. Sie sollten vielmehr feststellen, ob bestimmte Funktionen vorhanden sind. Anstatt von
public static bool IsDotNet45()
{
return Environment.Version.Major == 4 &&
Environment.Version.Revision > 17000;
}
Mach so etwas wie:
public static bool SupportsReflectionContext()
{
// Class "ReflectionContext" exists from .NET 4.5 onwards.
return Type.GetType("System.Reflection.ReflectionContext", false) != null;
}
Obwohl ich bezweifle, dass dies zum Zeitpunkt der Frage im aktuellen Format verfügbar war, ist hier die CLR Guide auf msdn, wo es alle Framework -Versionen und die CLR -Version anzeigt, die sie enthalten. Ich fand es sehr hilfreich, also dachte ich, ich würde teilen.
Neben .NET 4.5 Es besagt, dass es beinhaltet CLR 4.
.NET 4 und .NET 4.5 (einschließlich 4.5.1 und 4.5.2) befinden sich auf der CLR Version 4.0
Mehr Details: https://msdn.microsoft.com/en-us/library/8bs2ecf4(v=vs.110).aspx
.NET Framework 4.5 ist wie ein Servicepaket für .NET Framework 4 mit einigen zusätzlichen Funktionen.
Scott Hanselman hat einen Beitrag in seinem Blog, in dem sich diese Frage befasst. Hier erfahren Sie davon:
http://www.hanselman.com/blog/netversioningandmultargetingNet45isaninPlaPGradetonet40.aspx
Das Kurzschluss ist, dass es Aktualisierungen der CLR gibt, die die Leistung verbessern und neue Bibliotheken hinzugefügt haben. Die von .NET 4.5 verwendete CLR ist mit .NET 4. als kleines Update angesehen. Diese kleineren Updates nennen Microsoft ein In-Place-Update.