Понимание заголовка сборки с CorFlags (почему моя сборка загружается в 32-битное адресное пространство?)

Я нашел довольно много информации о том, как должна загружаться сборка .NET на основе флагов, установленных в заголовке сборки. Такие страницы, как Переворачивание битов на управляемых изображениях, чтобы заставить их загружаться с правильной разрядностью ... кажется, предполагают, что если у вас есть следующий заголовок.

PE : PE32 

ILONLY : 1

32BIT : 0 

Он был скомпилирован как «Любой процессор», и я могу ожидать, что он загрузится с 32-битной CLR на 32-битных платформах и с 64-битной CLR на 64-битных платформах. Это именно то поведение, которого я ожидал и хотел

. К сожалению, на моей 64-битной машине с Windows 7 этого не происходит. Сборка загружается в 32-битное адресное пространство. Я знаю, что смогу вызвать проблему во время компиляции, построив с использованием x64, но почему он вообще делает неправильные вещи?

Как я могу исправить эту проблему? Это какая-то проблема с реестром или средой, на которую я еще не наткнулся?

1
задан Peter Mortensen 18 February 2013 в 16:43
поделиться