开发者

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

开发者 https://www.devze.com 2022-12-27 14:10 出处:网络
Are there compatibility barriers with a .NET 4.0 assembly calling code in a .NET 2.0 assembly?And vice versa?

Are there compatibility barriers with a .NET 4.0 assembly calling code in a .NET 2.0 assembly? And vice versa?

More specifically, I'm investigating an upgrade to Visual Studio 2010 when using a third party application based on .NET 2.0. The application is extensible by hooks tha开发者_StackOverflow中文版t reference my custom code. And vice versa, my code will reference the application's assemblies.


The CLR, in .NET 4, can consume .NET 2 assemblies and use them properly.

If you want your .NET 2 application to be able to load .NET 4 assemblies, you'll need to configure it differently. By setting the requiredRuntime to .NET 4, and the legacy load policy, you should be able to force the .NET 2 application to load using CLR 4, which would allow your .NET 4 assemblies to be used.

Setup your app.config file to include:

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

That being said, in a situation like this, I'd recommend just using VS 2010 and targetting .NET 3.5 instead of .NET 4. This would compile your assemblies for CLR 2, and avoid this issue entirely.


.NET 4.0 assemblies can call .NET 2.0 assemblies with no difficulty. However, it is highly unlikely you will be able to call a .NET 4.0 assembly from .NET 2.0 unless the .NET 4.0 assembly did not take advantage of any new framework features and you setup assembly redirects.

0

精彩评论

暂无评论...
验证码 换一张
取 消