Compatibilidad de versiones en .NET Framework

La compatibilidad con versiones anteriores significa que una aplicación desarrollada para una versión determinada de una plataforma se ejecutará en las versiones posteriores de esa plataforma. .NET Framework intenta maximizar la compatibilidad con versiones anteriores. El código fuente escrito para una versión de .NET Framework debe compilarse en versiones posteriores de.NET Framework y los binarios que se ejecutan en una versión de .NET Framework deberán comportarse del mismo modo en versiones posteriores de .NET Framework.

Compatibilidad de versiones de las aplicaciones

De manera predeterminada, una aplicación se ejecuta en la versión de .NET Framework para la que se creó. Si esa versión no está presente y en el archivo de configuración de la aplicación no se han definido las versiones compatibles, puede producirse un error de inicialización de .NET Framework. En este caso, el intento de ejecutar la aplicación no tendrá éxito.

Para definir las versiones concretas en las que se ejecuta la aplicación, agregue uno o varios elementos <supportedRuntime> al archivo de configuración de la aplicación. Cada elemento <supportedRuntime> muestra una versión compatible del runtime; el primer elemento especifica la versión de mayor preferencia y el último, la de menor preferencia.

Compatibilidad de versiones de los componentes

Una aplicación puede controlar la versión de .NET Framework en la que se ejecuta, pero un componente no. Los componentes y las bibliotecas de clases se cargan en el contexto de una aplicación determinada y, por consiguiente, se ejecutan automáticamente en la versión de .NET Framework de la aplicación.

Debido a esta restricción, las garantías de compatibilidad son especialmente importantes en los componentes. A partir de .NET Framework versión 4, puede especificar el grado en el que se espera que un componente siga siendo compatible entre diversas versiones aplicando el atributo System.Runtime.Versioning.ComponentGuaranteesAttribute a dicho componente. Las herramientas pueden usar este atributo para detectar posibles infracciones de la garantía de compatibilidad en futuras versiones de un componente.

Compatibilidad con versiones anteriores de .NET Framework 4

.NET Framework 4 es compatible con las aplicaciones que se crearon con las versiones de .NET Framework 1.1, 2.0, 3.0 y 3.5. En otras palabras, las aplicaciones y los componentes creados con versiones anteriores de .NET Framework funcionarán en .NET Framework 4.

Sin embargo, en la práctica, esta compatibilidad puede verse interrumpida por cambios en apariencia intrascendentes realizados en .NET Framework y cambios en las técnicas de programación. Por ejemplo, las mejoras de rendimiento realizadas en .NET Framework 4 pueden exponer una condición de carrera que no se daba en versiones anteriores. De igual forma, si se usa una ruta de acceso codificada de forma rígida en los ensamblados .NET Framework, se realiza una comparación de igualdad con una determinada versión de .NET Framework y se obtiene el valor de un campo privado usando la reflexión, no habrá compatibilidad con versiones anteriores. Además, cada una de las versiones de .NET Framework contiene correcciones de errores y cambios relacionados con la seguridad que pueden afectar a la compatibilidad de algunas aplicaciones y componentes.

Debe comprobar sus aplicaciones y componentes de .NET Framework para asegurarse de que son compatibles con otras versiones de .NET Framework. Para asegurarse de que una aplicación o componente se ejecuta correctamente en .NET Framework 4, vea .NET Framework 4 Application Compatibility Walkthrough.

Si su aplicación o componente no funciona como se esperaba en .NET Framework 4, use las listas de comprobación siguientes.

Para las aplicaciones de .NET Framework 2.0, 3.0 y 3.5:

  • Compruebe en Problemas de migración de .NET Framework 4 los cambios que podrían afectar a la aplicación y utilice la solución descrita.

  • Si está recompilando código fuente existente para ejecutarlo en .NET Framework 4 o está desarrollado una nueva versión de una aplicación o componente que tiene como destino .NET Framework 4 a partir de una base de código fuente existente, consulte en Lo obsoleto en .NET Framework los miembros y tipos obsoletos y aplique las soluciones descritas. (El código compilado previamente seguirá ejecutándose con los tipos y miembros que se han marcado como obsoletos).

  • Si considera que un cambio de .NET Framework 4 ha dañado la aplicación, consulte Esquema de la configuración de Common Language Runtime para determinar si puede usar en tiempo de ejecución un valor en el archivo de configuración de la aplicación para restaurar el comportamiento anterior.

  • Si detecta un problema que no está documentado, notifique el error en Microsoft Connect y póngase en contacto con netfxcf@microsoft.com utilizando el número de error.

Para las aplicaciones de .NET Framework 1.1:

  • Compruebe en Problemas de migración de .NET Framework 4 los cambios que podrían afectar a la aplicación y utilice la solución descrita.

  • Consulte en Changes in .NET Framework 3.5 SP1 y Changes in .NET Framework 2.0 los cambios realizados en estas versiones.

  • Si está recompilando código fuente existente para ejecutarlo en .NET Framework 4 o está desarrollado una nueva versión de una aplicación o componente que tiene como destino .NET Framework 4 a partir de una base de código fuente existente, consulte en Lo obsoleto en .NET Framework los miembros y tipos obsoletos y aplique las soluciones descritas. (El código compilado previamente seguirá ejecutándose con los tipos y miembros que se han marcado como obsoletos).

  • Si considera que un cambio de .NET Framework 4 ha dañado la aplicación, consulte Esquema de la configuración de Common Language Runtime para determinar si puede usar en tiempo de ejecución un valor en el archivo de configuración de la aplicación para restaurar el comportamiento anterior.

  • Si detecta un problema que no está documentado, notifique el error en Microsoft Connect y póngase en contacto con netfxcf@microsoft.com utilizando el número de error.

Compatibilidad y ejecución en paralelo

Si no puede encontrar una solución conveniente para su problema, recuerde que .NET Framework 4 se ejecuta en paralelo con las versiones 1.1, 2.0 y 3.5. Puede instalar la versión adecuada de .NET Framework en el equipo de destino para ejecutar la aplicación en su entorno más conveniente. Para obtener más información acerca de la ejecución en paralelo, vea Ejecución simultánea.

Vea también

Conceptos

Lo nuevo en .NET Framework 4

Otros recursos

Lo obsoleto en .NET Framework

Problemas de migración de .NET Framework 4

Historial de cambios

Fecha

Historial

Motivo

Agosto de 2010

Se ha indicado que se produce un error de inicialización de .NET Framework si no se instala una versión compatible de .NET Framework.

Corrección de errores de contenido.