15

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

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

简而言之,我可以Assembly.Load从 .NET 4.0 代码调用以加载 .NET 4.5 目标程序集吗?

4

1 回答 1

12

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

如sehe链接的marcgravell博客中所述

4.5 是 GAC 中 4.0 之上的就地 Over-the-top 安装;安装 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 迭代器的实现会导致缺少方法引用。但这不应该影响你。

于 2012-09-27T23:16:43.483 回答