代码之家  ›  专栏  ›  技术社区  ›  spoulson

.net 4.0代码能否与.net 2.0代码互操作?

  •  25
  • spoulson  · 技术社区  · 16 年前

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

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

    2 回复  |  直到 16 年前
        1
  •  38
  •   Reed Copsey    16 年前

    在.net 4中,clr可以使用.net 2程序集并正确使用它们。

    如果希望.NET 2应用程序能够加载.NET 4程序集,则需要对其进行不同的配置。通过将RequiredRuntime设置为.NET 4和旧式加载策略,您应该能够使用CLR 4强制加载.NET 2应用程序,这将允许使用.NET 4程序集。

    将app.config文件设置为包括:

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

    也就是说,在这种情况下,我建议只使用VS2010和.NET3.5而不是.NET4。这将为clr 2编译程序集,并完全避免此问题。

        2
  •  -3
  •   Tom Cabanski    16 年前

    .NET 4.0程序集可以毫不费力地调用.NET 2.0程序集。但是,除非.NET 4.0程序集没有利用任何新的框架功能,并且您设置程序集重定向,否则您极不可能从.NET 2.0调用.NET 4.0程序集。