Компиляция вашего двоичного файла с установкой «Тип платформы» на x64 также изменяет заголовок PE изображения, чтобы сделать его только 64-разрядным Это можно увидеть, например, с помощью Dependency Walker .
Наличие 64-битного PE-заголовка, по-видимому, имеет приоритет над 32-битными только флагами. Загрузчик win32 для .NET, похоже, видит, что PE-заголовок несовместим с текущей системой (64 бита в 32-битной системе). Это предотвращает загрузку собственного образа и, кроме того, части образа .NET для сборки.
Однако я не знаю ни одного инструмента, способного обновлять PE-заголовок. Похоже, это не просто вопрос изменения флага для установки изображения на 32 бита. (См. это сообщение в блоге )