que - ¿Presentará.NET 4.5 una nueva versión del CLR?
que net framework debo instalar en windows 7 (7)
.NET 4 y .NET 4.5 (incluidos 4.5.1 y 4.5.2) están en la versión 4.0 de CLR
Más detalles: https://msdn.microsoft.com/en-us/library/8bs2ecf4(v=vs.110).aspx
En el pasado, no todas las nuevas versiones de .NET venían con una nueva versión de CLR. Sé que .NET 1.0, 1.1, 2.0 y 4.0 lo hicieron, pero .NET 3.0 y 3.5 no.
¿Presentará .NET 4.5 un nuevo CLR? ¿Y cómo se dice si hay un nuevo CLR?
.NET Framework 4.5 es como un paquete de servicios para .NET Framework 4 con algunas características adicionales.
Aunque dudo que esto estuviera disponible en su formato actual en el momento de la pregunta, aquí está la Guía de CLR en MSDN donde se muestran todas las versiones de Framework y la versión de CLR que incluyen. Lo encontré muy útil, así que pensé en compartirlo.
Junto a .NET 4.5 indica que incluye CLR 4 .
No, sigue siendo la versión 4.0.30319. La nueva revisión de clr.dll y amigos reemplazará las existentes en su máquina. El mismo esquema que se usa en .NET 3.0, 3.5 y 3.5SP1. La verificación para ver si 4.5 está instalado requiere el mismo enfoque que esas versiones, usted verifica el registro .
Sí. La versión del CLR cambia de 4.0.30319.269
a 4.0.30319.17379
. Entonces, el CLR es nuevo, pero es compatible con el CLR .NET 4.0. No debería necesitar volver a compilar ningún código escrito para .NET v4.0.
Desde la página de msdn.microsoft.com/en-us/library/bb822049(v=vs.110).aspx en MSDN:
.NET Framework 4.5 RC es una actualización in situ que reemplaza .NET Framework 4 en su computadora. Después de instalar esta actualización, sus aplicaciones .NET Framework 4 deben continuar ejecutándose sin requerir una recompilación. Sin embargo, algunos cambios en el .NET Framework pueden requerir cambios en el código de su aplicación.
Adicionalmente, desde el blog de .NET Framework :
.NET Framework 4.5 es una actualización local que reemplaza a .NET Framework 4 (en lugar de una instalación en paralelo). Nuestro objetivo es que .NET 4.5 sea totalmente compatible con las aplicaciones creadas para .NET 4
Hay algunos cambios que no son compatibles con versiones anteriores. Consulte la Compatibilidad de aplicaciones en la página .NET Framework 4.5 RC en MSDN.
La guía oficial de Microsoft y la buena práctica de codificación no consiste en detectar versiones específicas del CLR. Más bien, debe detectar si ciertas características están presentes. En lugar de
public static bool IsDotNet45()
{
return Environment.Version.Major == 4 &&
Environment.Version.Revision > 17000;
}
hacer algo como:
public static bool SupportsReflectionContext()
{
// Class "ReflectionContext" exists from .NET 4.5 onwards.
return Type.GetType("System.Reflection.ReflectionContext", false) != null;
}
Sí. .NET 4.5 tiene una nueva versión del CLR, puedes leer sobre las mejoras en;
Para aclarar; esta es una nueva versión de CLR que reemplaza a la versión 4.0, por lo que es discutible si se llama una actualización o un nuevo CLR.
Para saber en qué versión de CLR está ejecutando, use
System.Runtime.InteropServices.RuntimeEnvironment.GetSystemVersion()
Scott Hanselman tiene una publicación en su blog que aborda esta pregunta. Puedes encontrarlo aquí:
http://www.hanselman.com/blog/NETVersioningAndMultiTargetingNET45IsAnInplaceUpgradeToNET40.aspx
El problema es que hay actualizaciones para el CLR que mejoran el rendimiento y agregan nuevas bibliotecas. El CLR utilizado por .NET 4.5 es compatible con .NET 4. Se considera que es una actualización menor. Estas actualizaciones menores son lo que Microsoft llama una actualización in situ.