2010-09-24 143 views
29

你可以在3.5项目中使用.NET 4.0 dll吗?您可以在3.5项目中使用.NET 4.0 dll吗?

+11

是什么永远向前兼容? – ChaosPandion 2010-09-24 21:21:04

+3

你可以,如果你不介意创建一个COM包装器/适配器,并通过该调用.NET 4 DLL http://stackoverflow.com/a/9508452/74585 – 2012-02-29 23:50:57

+0

请检查我的回答同一问题: 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 2013-04-17 19:58:53

回答

26

没有。您可以在4.0项目中使用.Net 3.5程序集,但不能反其道而行。

17

不,你不能。编译为.NET 4.0的程序集只能由CLR 4.0加载。另一方面,CLR 4.0可以加载针对.NET 3.5编译的程序集。

+0

CLR 4.0加载3.5程序集有一天让我感到惊讶和困惑。抓住了我的头。 – 2010-09-24 21:29:59

+1

@Jim,为什么?如果这是不可能的,我甚至无法想象会迁移到.NET 4.0。在发布框架/ CLR的新版本时,Microsoft一直在保持向后兼容性方面做得很好。 – 2010-09-24 21:36:52

+0

我不知道它为什么让我感到惊讶。回想起来,它不应该有。但由于某种原因,当时我没有想到它。 – 2010-09-24 21:41:34

0

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

通过COM使用我们的.NET 4的DLL

 
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(); 
     } 
    } 

} 
相关问题