在.NET 4.0应用程序域上加载针对.NET 4.5的程序集

假设系统安装了.NET 4.0和.NET 4.5。

是否可以从针对.NET 4.0编写的程序集中加载和使用.NET 4.5程序集?

简单地说,我可以从.NET 4.0代码调用Assembly.Load来加载.NET 4.5目标程序集吗?

假设系统为.NET 4.0和.NET 4.5:

正如由sehe链接的marcgravell 的博客中所述

4.5是GAC中4.0之上的就地过顶安装; 一旦安装了4.5,4.0与4.5程序集一起运行

然后从面向4.0的.NET代码(由4.0编译器编译)调用Assembly.Load,实际上将使用4.5框架实现运行,因此我没有看到任何无法加载4.5程序集的原因。

margravell指出,当您尝试在仅安装4.0的系统上运行.NET 4.5编译代码时会出现问题,因为yield return / break迭代器的实现会导致缺少方法引用。 但这不应该影响你。