我发现了一些有关.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构建来在编译时强制解决问题,但为什么它首先做错了?
如何解决此问题?是否有一些我尚未偶然发现的注册表或环境问题?
答案 0 :(得分:2)
你没有对汇编的种说什么。只有启动程序集才能确定进程的位数。 EXE。任何DLL都必须效仿。