Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# x64 Appdomain中的x86程序集-x86 exe工作,x86 dll失败_C#_.net Assembly - Fatal编程技术网

C# x64 Appdomain中的x86程序集-x86 exe工作,x86 dll失败

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应用程序 (如果有人感兴趣,我可以附上我使用的示例代码)对此的响

我正在开发一个使用插件机制加载库的应用程序。通常托管应用程序作为64位应用程序运行

到目前为止,一切正常。可以加载x64程序集,可以加载任何CPU,并且x86程序集失败。也就是说,直到有人提出这个想法并创建了一个x86控制台应用程序,它也可以被加载

为什么可以从64位主机进程加载x86控制台应用程序集(exe),但无法加载x86库(dll)?只是为了澄清一下——我不是想加载x86 dll,也不打算加载——只是好奇为什么允许加载x86应用程序


(如果有人感兴趣,我可以附上我使用的示例代码)

对此的响应是不久前在Microsoft Connect中给出的。。。然而,我似乎找不到链接

然而,我确实找到了一个线程,他们在其中引用了响应

引述:

嗨。谢谢你报道这个问题。看起来您无意中发现了一个实现细节——我们没有对可执行文件使用LoadLibrary,在本例中,它似乎执行了我们没有执行的验证。我不能说这种差异是故意的行为,但是如果我们现在增加一张额外的支票,我们可能会破坏某人,而且这个问题似乎还不够严重,不足以承担风险


请确认-您的控制台应用程序仅使用x86构建,您正在使用
汇编.Load
将其加载到进程中,对吗?是的,您是对的。更具体地说,进入一个新的appdomain,但我想这并没有什么区别。并不是说它说的更多。。。它只是被标记为无法修复。