【发布时间】:2008-10-29 14:52:09
【问题描述】:
如果我要说的任何内容没有意义或忽略了一些明显的事情,我深表歉意 - 我对 CLR 内部的了解参差不齐。
如果我理解正确,那么如果我只是在 VS2K5 中为“AnyCPU”构建一个解决方案(或使用这些设置将 MSBuild 指向那个 .sln 文件),那么二进制文件只能编译到 MSIL。然后,如果在 32 位平台上执行,它们会被 JITted 到 32 位;如果在 x64 上执行,它们会被 JITted 到 64 位代码......对吗?
DLL 用于 Web 应用程序并托管在 W3WP.exe 进程中。 Process Explorer 告诉我 W3WP 是一个 64 位进程。
但是,当我使用 Process Explorer 在 DLL 视图中检查其中一个 DLL 的属性时,它会显示:“图像:32 位”。什么给了?
如果我对有问题的 dll 运行 corflags,它会告诉我: ILONLY 1 , 32BIT 0 but PE PE32 。我的理解是,这意味着是的,它只编译到 IL,不,它不限于 32 位或 64 位,但我并不完全清楚。 PE32 标志是否与上述显示为 32 位有关?
【问题讨论】:
标签: .net clr 64-bit process-explorer corflags