默认情况下,我的应用程序引用混合模式DLL,因此该DLL为32位和64位。在32位系统上,我的应用程序是MSIL并加载32位DLL。在64位系统上,我的应用程序加载64位。
但是在64位系统上,在我引用的旧版程序集中,它们只创建了32位版本。所以我没有加载它。我正在考虑动态地做它,理想情况下我希望我的MSIL应用程序在64位模式下加载32位DLL。这可能吗?
将它解析为与我所引用的版本不同的版本也是很好的。
任何帮助表示感谢。
答案 0 :(得分:1)
您无法将32位DLL加载到64位进程中。 “任何CPU”程序集都有效,因为JIT在执行之前处理IL编译,创建了适当类型的本机映像;特定于CPU的程序集不支持对不同类型的JIT。
This is a Windows limitation,而不是CLR限制。