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?

War es hilfreich?

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.

http://blogs.microsoft.il/blogs/sasha/archive/2011/09/17/improvements-in-the-cr-core-inet-framework-4-5.aspx

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top