C# · 12月 29, 2021

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