Compatibilidad de versiones

La compatibilidad con versiones anteriores significa que una aplicación desarrollada en 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 archivos 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

Una aplicación se ejecuta de manera predeterminada 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 se realizará correctamente.

Para definir las versiones concretas en las que se ejecuta la aplicación, agregue uno o varios elementos <supportedRuntime> 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.

<configuration>
   <startup>
      <supportedRuntime version="v2.0.50727" />
      <supportedRuntime version="v4.0" />
   </startup>
</configuration>

Para obtener más información, vea Cómo: Configurar una aplicación para que admita .NET Framework 4 o 4.x.

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 puede hacerlo. 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 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

.NET Framework 4.5 y versiones posteriores son compatibles con las aplicaciones creadas con versiones anteriores de .NET Framework. Es decir, las aplicaciones y los componentes creados con versiones anteriores funcionarán sin necesidad de modificación en .NET Framework 4.5 y versiones posteriores. Pero, de forma predeterminada, las aplicaciones se ejecutan en la versión de Common Language Runtime para la que se han desarrollado, por lo que puede tener que proporcionar un archivo de configuración para permitir que la aplicación se ejecute en .NET Framework 4.5 o versiones posteriores. Para más información, consulte la sección Compatibilidad de versiones de las aplicaciones, anteriormente en este artículo.

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.5 pueden provocar 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 revisiones de errores y cambios relacionados con la seguridad que pueden afectar a la compatibilidad de algunas aplicaciones y componentes.

Use las siguientes listas de comprobación si su aplicación o componente no funciona como esperaba en .NET Framework 4.5 o una versión posterior:

Ejecución simultánea

Si no encuentra una solución conveniente para su problema, recuerde que .NET Framework 4.5 (o sus versiones secundarias) se ejecuta en paralelo con las versiones 1.1, 2.0 y 3.5, y es una actualización en contexto que reemplaza la versión 4. En el caso de las aplicaciones dirigidas a 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 más información acerca de la ejecución en paralelo, consulte Ejecución en paralelo.

Vea también