2010-09-24 19 views
29

¿Se puede usar un DLL de .NET 4.0 en un proyecto de 3.5?¿Se puede usar un DLL de .NET 4.0 en un proyecto de 3.5?

+11

Es algo alguna vez compatible con el futuro? – ChaosPandion

+3

Puede hacerlo si no le importa crear un envoltorio/adaptador COM y llamar a la DLL .NET 4 a través de ese http://stackoverflow.com/a/9508452/74585 –

+0

Compruebe mi otra respuesta a la misma pregunta: http://stackoverflow.com/questions/16038442/how-can-i-use-net-4-0-code-in-c-sharp-project-which-is-built-using-net-framewo/ 16040309 # 16040309 – Aidin

Respuesta

26

Nope. Puede usar un ensamblado .Net 3.5 en un proyecto 4.0, pero no al revés.

17

No, no puedes. Un ensamblado compilado contra .NET 4.0 solo se puede cargar con CLR 4.0. Por otro lado, el CLR 4.0 puede cargar ensamblados compilados contra .NET 3.5.

+0

CLR 4.0 cargando un ensamble 3.5 me sorprendió y confundió el otro día. Me rasqué la cabeza por un momento. –

+1

@Jim, ¿por qué? Si esto no fuera posible, ni siquiera puedo imaginarme migrando a .NET 4.0. Microsoft siempre ha hecho un buen trabajo al mantener la compatibilidad con versiones anteriores al lanzar nuevas versiones del framework/CLR. –

+0

No sé por qué me sorprendió. En retrospectiva, no debería haberlo hecho. Pero por alguna razón en ese momento no lo esperaba. –

0

https://code.msdn.microsoft.com/Using-a-NET-4-Based-DLL-bb141db3/

Utilice nuestra DLL .NET 4 a través de COM

 
using System; 
using Net4ToNet2Adapter; 

namespace Net2Assembly 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      Console.WriteLine("CLR version from EXE: {0}", Environment.Version); 
      Type myClassAdapterType = Type.GetTypeFromProgID("Net4ToNet2Adapter.MyClassAdapter"); 
      object myClassAdapterInstance = Activator.CreateInstance(myClassAdapterType); 
      IMyClassAdapter myClassAdapter = (IMyClassAdapter)myClassAdapterInstance; 
      myClassAdapter.DoNet4Action(); 
     } 
    } 

} 
Cuestiones relacionadas