如果我说的话有些不清楚或者忽略了一些显而易见的事情,我很抱歉——我对CLR内部的知识了解不够全面。
如果我理解正确的话,那么如果我只是在VS2K5中为“AnyCPU”构建一个解决方案(或者将MSBuild指向那个具有这些设置的.sln文件),那么二进制文件只会编译到MSIL。然后,它们会在32位平台上执行时被JIT编译成32位代码,或者在x64上执行时被编译成64位代码... 对吗?
DLL用于Web应用程序,并托管在W3WP.exe进程中。进程资源管理器告诉我W3WP是一个64位进程。
但是当我使用进程资源管理器在DLL视图中检查其中一个DLL的属性时,它显示:“Image: 32-bit”。这是怎么回事?
如果我对所讨论的dll运行corflags,它告诉我:ILONLY 1, 32BIT 0,但PE PE32。我的理解是,这意味着它只编译到了IL,没有限制为32位或64位,但我并不完全清楚。PE32标志是否与它上述显示为32位有关?