C# x64 Appdomain中的x86程序集-x86 exe工作,x86 dll失败
我正在开发一个使用插件机制加载库的应用程序。通常托管应用程序作为64位应用程序运行 到目前为止,一切正常。可以加载x64程序集,可以加载任何CPU,并且x86程序集失败。也就是说,直到有人提出这个想法并创建了一个x86控制台应用程序,它也可以被加载 为什么可以从64位主机进程加载x86控制台应用程序集(exe),但无法加载x86库(dll)?只是为了澄清一下——我不是想加载x86 dll,也不打算加载——只是好奇为什么允许加载x86应用程序C# x64 Appdomain中的x86程序集-x86 exe工作,x86 dll失败,c#,.net-assembly,C#,.net Assembly,我正在开发一个使用插件机制加载库的应用程序。通常托管应用程序作为64位应用程序运行 到目前为止,一切正常。可以加载x64程序集,可以加载任何CPU,并且x86程序集失败。也就是说,直到有人提出这个想法并创建了一个x86控制台应用程序,它也可以被加载 为什么可以从64位主机进程加载x86控制台应用程序集(exe),但无法加载x86库(dll)?只是为了澄清一下——我不是想加载x86 dll,也不打算加载——只是好奇为什么允许加载x86应用程序 (如果有人感兴趣,我可以附上我使用的示例代码)对此的响
(如果有人感兴趣,我可以附上我使用的示例代码)对此的响应是不久前在Microsoft Connect中给出的。。。然而,我似乎找不到链接 然而,我确实找到了一个线程,他们在其中引用了响应 引述: 嗨。谢谢你报道这个问题。看起来您无意中发现了一个实现细节——我们没有对可执行文件使用LoadLibrary,在本例中,它似乎执行了我们没有执行的验证。我不能说这种差异是故意的行为,但是如果我们现在增加一张额外的支票,我们可能会破坏某人,而且这个问题似乎还不够严重,不足以承担风险
请确认-您的控制台应用程序仅使用x86构建,您正在使用
汇编.Load
将其加载到进程中,对吗?是的,您是对的。更具体地说,进入一个新的appdomain,但我想这并没有什么区别。并不是说它说的更多。。。它只是被标记为无法修复。