我有一个使用 C# 使用 Visual Studio 2005 构建的可执行文件。 dumpbin 报告它是 x86,并声称它是作为 x86 目标构建的。然而,当我尝试执行它时,它不知何故变成了一个 64 位可执行文件,正如任务管理器、进程资源管理器和 procmon 所报告的那样,它显示它加载了 Framework64。由于无法加载 32 位 DLL,它最终失败了。 什么会导致这种行为?
最佳答案
您正在使用 AnyCPU 目标构建它。如果您希望它在 64 位系统上也是 x86,那么您必须以 x86 为目标。
当您以 AnyCPU 为目标时,加载程序在 64 位系统上将进程作为 64 位进程运行,但在 32 位系统上作为 32 位进程运行。
关于c# - 32/64 位与 .NET 可执行文件混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6847284/