我可以使用AppDomain.AssemblyResolve事件来重定向失败的程序集加载吗?

时间:2010-04-02 21:59:16

标签: c# reflection assemblies

默认情况下,我的应用程序引用混合模式DLL,因此该DLL为32位和64位。在32位系统上,我的应用程序是MSIL并加载32位DLL。在64位系统上,我的应用程序加载64位。

但是在64位系统上,在我引用的旧版程序集中,它们只创建了32位版本。所以我没有加载它。我正在考虑动态地做它,理想情况下我希望我的MSIL应用程序在64位模式下加载32位DLL。这可能吗?

将它解析为与我所引用的版本不同的版本也是很好的。

任何帮助表示感谢。

1 个答案:

答案 0 :(得分:1)

您无法将32位DLL加载到64位进程中。 “任何CPU”程序集都有效,因为JIT在执行之前处理IL编译,创建了适当类型的本机映像;特定于CPU的程序集不支持对不同类型的JIT。

This is a Windows limitation,而不是CLR限制。