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

Mad*_*han 14 .net c# .net-4.0 assembly-loading .net-4.5

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

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

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

Mer*_*OWA 12

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

  • 那么它怎么会默认不起作用呢? - 为了使它有效,你还需要做些什么? (4认同)