Assuming the system has .NET 4.0 and .NET 4.5 installed.
Is it possible to load and work with a .NET 4.5 assembly from an assembly written targeting .NET 4.0?
Simply put, can I call Assembly.Load from .NET 4.0 code to load a .NET 4.5 targeting assembly?
Assuming a system as .NET 4.0 and .NET 4.5:
As stated in marcgravell's blog linked by sehe
4.5 is an in-place over-the-top install on top of 4.0, in the GAC; once you have installed 4.5, 4.0 runs with the 4.5 assemblies
Then calling Assembly.Load from a .NET code targeting 4.0 (compiled by a 4.0 compiler), will actually run in using the 4.5 framework implementation, so I don't see any reason why it couldn't load a 4.5 assembly.
margravell notes that problems occur when you try to run .NET 4.5 compiled code on a system with only 4.0 installed, as the implementation of the yield return/break iterators causes a missing method reference. But this shouldn't affect you.
来源:https://stackoverflow.com/questions/12631353/loading-an-assembly-targeted-for-net-4-5-on-a-net-4-0-app-domain