.net .net-2.0 .net-4.0

¿Puede el código.NET 4.0 interoperar con el código.NET 2.0?



.net-2.0 .net-4.0 (2)

El CLR, en .NET 4, puede consumir los ensamblados .NET 2 y usarlos correctamente.

Si desea que su aplicación .NET 2 pueda cargar ensamblados .NET 4, deberá configurarlo de manera diferente. Al establecer el tiempo de ejecución requerido en .NET 4 y la política de carga heredada, debería poder forzar la carga de la aplicación .NET 2 mediante CLR 4, lo que permitiría el uso de los ensamblados .NET 4.

Configure su archivo app.config para incluir:

<?xml version="1.0"?> <configuration> <startup useLegacyV2RuntimeActivationPolicy="true"> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/> </startup> </configuration>

Dicho esto, en una situación como esta, recomendaría usar VS 2010 y apuntar a .NET 3.5 en lugar de .NET 4. Esto compilaría sus ensamblados para CLR 2 y evitaría este problema por completo.

¿Existen barreras de compatibilidad con un código de llamada a un ensamblado .NET 4.0 en un ensamblado .NET 2.0? ¿Y viceversa?

Más específicamente, estoy investigando una actualización a Visual Studio 2010 cuando utilizo una aplicación de terceros basada en .NET 2.0. La aplicación es extensible mediante enlaces que hacen referencia a mi código personalizado. Y viceversa, mi código hará referencia a los ensamblajes de la aplicación.


Los ensamblados .NET 4.0 pueden llamar a los ensamblados .NET 2.0 sin dificultad. Sin embargo, es muy poco probable que pueda llamar a un ensamblado .NET 4.0 desde .NET 2.0 a menos que el ensamblado .NET 4.0 no aprovechara ninguna de las nuevas características de la estructura y que configure los redireccionamientos del ensamblaje.