Понимание заголовка сборки с помощью CorFlags (почему моя сборка загружается в 32-разрядное адресное пространство?) - PullRequest
1 голос
/ 20 сентября 2010

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

PE : PE32 

ILONLY : 1

32BIT : 0 

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

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

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

1 Ответ

2 голосов
/ 20 сентября 2010

Вы ничего не сказали о виде сборки. Только начальная сборка определяет разрядность процесса. EXE. Любая DLL должна следовать этому примеру.

...