假设系统安装了.NET 4.0和.NET 4.5.
可以从编写.NET 4.0的程序集中加载和使用.NET 4.5程序集吗?
简单来说,我可以从.NET 4.0代码调用Assembly.Load来加载.NET 4.5 targetting程序集吗?
解决方法
假设系统为.NET 4.0和.NET 4.5:
如marcgravell’s blog所述,由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
然后从.NET代码4.0(由4.0编译器编译)调用Assembly.Load,实际上将使用4.5框架实现,所以我没有看到无法加载4.5程序集的任何原因.
margravell指出,当您尝试在仅安装4.0的系统上运行.NET 4.5编译代码时,会发生问题,因为yield / break迭代器的实现会导致缺少的方法引用.但这不应该影响你.