我发现了一些与.NET 程序集应如何根据程序集标头中设置的标志加载有关的信息。诸如在托管图像上翻转位以使它们以正确的位数加载之类的页面似乎表明如果您有如下标题。
PE : PE32
ILONLY : 1
32BIT : 0
它已被编译为“任何 CPU”,我可以预期它可以在 32 位平台上加载 32 位CLR,在 64 位平台上加载 64 位 CLR。这正是我所期望和想要的行为。
不幸的是,在我的 Windows 7 64 位机器上似乎并非如此。程序集加载到 32 位地址空间中。我知道我应该能够通过使用 x64 构建在编译时强制解决问题,但为什么它首先做错了事情?
我该如何解决这个问题?是我还没有偶然发现的一些注册表或环境问题吗?