Pregunta

En el pasado, no todas las nuevas versión de .NET vinieron con una nueva versión del CLR. Sé que .NET 1.0, 1.1, 2.0 y 4.0 lo hicieron, pero .NET 3.0 y 3.5 no lo hicieron.

¿.NET 4.5 introducirá un nuevo CLR? ¿Y cómo se dice si hay un nuevo CLR?

¿Fue útil?

Solución

Sí, .NET 4.5 tiene una nueva versión de marca del CLR, puede leer sobre las mejoras en;

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

Para aclarar; Esta es una nueva versión del CLR que en realidad reemplazo El 4.0, por lo tanto, si es una actualización o un nuevo CLR es disputable.

Para saber en qué versión de CLR estás ejecutando, usa

System.Runtime.InteropServices.RuntimeEnvironment.GetSystemVersion()

Otros consejos

No, sigue siendo la versión 4.0.30319. La nueva revisión de Clr.Dll y Friends reemplazará a los existentes en su máquina. El mismo esquema que se usa en .NET 3.0, 3.5 y 3.5sp1. Comprobar para ver si 4.5 está instalado requiere el mismo enfoque que esas versiones, usted Verifique el registro.

Sí. los Versión de los cambios de CLR de 4.0.30319.269 a 4.0.30319.17379. Entonces, el CLR es nuevo, pero es compatible con el revés con el .NET 4.0 CLR. No debe necesitar volver a compilar ningún código escrito y compilado por .NET V4.0.

Desde el Versiones y dependencias de .NET Framework Página en MSDN:

.NET Framework 4.5 RC es una actualización en el lugar que reemplaza el .NET Framework 4 en su computadora. Después de instalar esta actualización, sus aplicaciones .NET Framework 4 deberían continuar ejecutándose sin requerir la recompilación. Sin embargo, algunos cambios en el marco .NET pueden requerir cambios en el código de su aplicación.

Además, de la Blog de .net Framework:

.NET Framework 4.5 es una actualización en el lugar que reemplaza .NET Framework 4 (en lugar de una instalación de lado a lado). Nuestro objetivo es que .NET 4.5 sea completamente compatible con las aplicaciones creadas para .NET 4

Hay algunos cambios que son no compatible con versiones anteriores. Ver el Compatibilidad de la aplicación en .NET Framework 4.5 RC Página en MSDN.

La orientación oficial de Microsoft, y una buena práctica de codificación, no es detectar versiones específicas del CLR. Más bien, debe detectar si hay ciertas características presentes. En vez de

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

Haz algo como:

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

Aunque dudo que esto estuviera disponible en su formato actual en el momento de la pregunta, aquí está el Guía CLR En MSDN, donde muestra todas las versiones del marco y la versión CLR que incluyen. Lo encontré muy útil, así que pensé en compartir.

Junto a .NET 4.5 establece que incluye CLR 4.

.NET 4 y .NET 4.5 (incluyendo 4.5.1 y 4.5.2) están en el CLR versión 4.0

Mas detalle: https://msdn.microsoft.com/en-us/library/8bs2ecf4(v=vs.110).aspx

.NET Framework 4.5 es como un paquete de servicio a .NET Framework 4 con algunas características adicionales.

Scott Hanselman tiene una publicación en su blog que aborda esta pregunta. Puedes averiguarlo aquí:

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

En pocas palabras, hay actualizaciones para el CLR que mejoran el rendimiento y agregaron nuevas bibliotecas. El CLR utilizado por .NET 4.5 es compatible con .NET 4. Se considera una actualización menor. Estas actualizaciones menores son lo que Microsoft llama una actualización en el lugar.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top