.NET 4.0代码可以与.NET 2.0代码互操作吗?

Can .NET 4.0 code interoperate with .NET 2.0 code?

在.NET 2.0程序集中是否存在与.NET 4.0程序集调用代码的兼容性障碍?反之亦然?

更具体地说,在使用基于.NET 2.0的第三方应用程序时,我正在研究对Visual Studio 2010的升级。应用程序可以通过引用我的自定义代码的钩子进行扩展。反之亦然,我的代码将引用应用程序的程序集。


在.NET的CLR,以及.NET组件的CAN 2 4,和使用他们的时间。

如果你想你的.NET应用程序可以加载到2 4组件。NET中,你需要不同的配置信息。通过设置在一个requiredruntime .NET 4负载,和遗留下来的政策,你应该能在《.NET CLR加载使用4 2应用,这将允许您的。NET 4组件的使用。

设置您的app.config文件包括:

1
2
3
4
5
6
<?xml version="1.0"?>
<configuration>
  <startup useLegacyV2RuntimeActivationPolicy="true">
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
  </startup>
</configuration>

这是说,在这样的情况,我建议只使用VS 2010和靶向.NET 3.5"。NET 4。这是您的CLR编译组件2和完全避免这问题。


NET组件调用.NET 4.0的CAN 2.0组件在没有困难。然而,它是非常不可能的,你将能够调用.NET .NET 2.0和4.0 A组装组装,除非在.NET 4.0没有利用任何新的功能和框架组装重定向你的设置。