理解带有CorFlags的汇编头(为什么我的程序集在32位地址空间中加载?)

时间:2010-09-20 16:27:07

标签: .net wow64 corflags

我发现了一些有关.NET程序集应如何根据程序集头中设置的标志加载的信息。 Flipping bits on managed images to make them load with the right bitness... 等网页似乎暗示如果您有一个标题如下。

PE : PE32 

ILONLY : 1

32BIT : 0 

它被编译为“任何CPU”,我可以期望它在32位平台上加载32位CLR,在64位平台上加载64位CLR。这正是我期望和想要的行为。

不幸的是,在我的Windows 7 64位计算机上似乎并非如此。程序集在32位地址空间中加载。我知道我应该能够通过使用x64构建来在编译时强制解决问题,但为什么它首先做错了?

如何解决此问题?是否有一些我尚未偶然发现的注册表或环境问题?

1 个答案:

答案 0 :(得分:2)

你没有对汇编的说什么。只有启动程序集才能确定进程的位数。 EXE。任何DLL都必须效仿。