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 Visua
.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.
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.