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

时间:2012-09-27 23:08:49

标签: c# .net .net-4.0 .net-4.5 assembly-loading

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

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

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

1 个答案:

答案 0 :(得分:12)

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

marcgravell's blog所述,由sehe链接

  

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迭代器的实现会导致缺少方法引用。但这不应该影响你。