2010-04-02 32 views
0

默认情况下,我的应用程序引用混合模式DLL,因此该DLL是32位和64位。在32位系统上,我的应用程序是MSIL并加载了32位DLL。在64位系统上,我的应用程序加载了64位。我可以使用AppDomain.AssemblyResolve事件重定向失败的程序集加载吗?

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

此外它将是很好的解决它,以不同于我所引用的版本。

任何帮助表示赞赏。

回答

1

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

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

相关问题