Question

Dans le passé, pas chaque nouvelle version de .NET est venu avec une nouvelle version du CLR. Je sais que .NET 1.0, 1.1, 2.0 et 4.0 fait, mais .NET 3.0 et 3.5 ne l'ai pas.

Will .NET 4.5 introduit un nouveau CLR? Et comment peut-on dire s'il y a un nouveau CLR?

Était-ce utile?

La solution

Oui, .NET 4.5 a une nouvelle version d'une marque de la CLR, vous pouvez lire sur les améliorations à;

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

Pour clarifier; c'est une nouvelle version du CLR qui en fait remplace 4,0 un, donc si vous souhaitez appeler une mise à jour ou un nouveau CLR est discutable.

Pour savoir quelle version CLR que vous utilisez sous, utilisez

System.Runtime.InteropServices.RuntimeEnvironment.GetSystemVersion()

Autres conseils

Non, il est encore la version 4.0.30319. La nouvelle révision de clr.dll et les amis remplacera ceux qui existent déjà sur votre machine. même schéma que celui utilisé dans .NET 3.0, 3.5 et 3.5SP1. Vérifier si 4.5 est installé nécessite la même approche que ces versions, vous vérifier le registre .

Oui. Versions .NET Framework et dépendances sur MSDN:

Le .NET Framework 4.5 RC est une mise à jour en place qui remplace le .NET Framework 4 sur votre ordinateur. Après avoir installé cette mise à jour, vos applications .NET Framework 4 devraient continuer à fonctionner sans nécessiter de recompilation. Cependant, certains changements dans le .NET Framework peuvent nécessiter des modifications à votre code d'application.

En outre, à partir de la NET Framework blog:

Framework 4.5 est une mise à jour sur place qui remplace Framework 4 (au lieu d'une installation côte à côte). Notre objectif est de 4,5 .NET pour être totalement rétrocompatible avec les applications créées pour .NET 4

Il y a quelques changements qui sont pas rétrocompatible. Voir de compatibilité des applications dans le .NET Framework 4.5 RC page sur MSDN.

Les recommandations officielles de Microsoft, et de bonnes pratiques de codage, est de ne pas détecter les versions spécifiques du CLR. Au contraire, vous devez détecter si certaines fonctionnalités sont présentes. Au lieu de

public static bool IsDotNet45()
{
    return Environment.Version.Major == 4 &&
           Environment.Version.Revision > 17000;
}

faire quelque chose comme:

public static bool SupportsReflectionContext()
{
    // Class "ReflectionContext" exists from .NET 4.5 onwards.
    return Type.GetType("System.Reflection.ReflectionContext", false) != null;
}

Bien que je doute que cela était disponible dans son format actuel au moment de la question, voici le Guide CLR sur MSDN où il montre toutes les versions de cadres et la version CLR qu'ils comprennent. Je l'ai trouvé très utile, donc je pensais que je voudrais partager.

4.5 .NET il dit qu'il comprend CLR 4 .

.NET 4 et .NET 4.5 (y compris 4.5.1 et 4.5.2) sont sur la version CLR 4.0

Plus de détails: https: // msdn .microsoft.com / fr-fr / bibliothèque / 8bs2ecf4 (v = vs.110) .aspx

.NET Framework 4.5 est comme un pack de service .NET Framework 4 avec quelques fonctionnalités supplémentaires.

Scott Hanselman a un post sur son blog répondre à cette question. Vous pouvez découvrir ici:

http://www.hanselman.com/blog/NETVersioningAndMultiTargetingNET45IsAnInplaceUpgradeToNET40.aspx

Le court est qu'il ya des mises à jour du CLR qui améliorent les performances et les nouvelles bibliothèques ajoutées. Le CLR utilisé par 4,5 .NET est compatible avec .NET 4. Il est considéré comme une mise à jour mineure. Ces mises à jour mineures sont ce que Microsoft appelle une mise à jour en place.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top