¿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.