2010-06-23 1 views
1

В настоящее время я переношу мой проект с x86 на x64. Это плагин и абсолютно должен работать как x64, так как хост тоже делает.Как создать x64 DynamicAssembly

Часть приложения создает динамическую сборку:

AppDomain.CurrentDomain.DefineDynamicAssembly(...) 

И затем сохраняет его на диск. Я проверил его с dumpbin /headers, его в x86!

Как я могу заставить сборку быть x64 из кода?

ответ

3

Это нормально, сборки, содержащие код IL, всегда упакованы в DLL с 32-разрядным заголовком. То же самое происходит с Project + Properties, вкладкой Build, Platform Target = Any CPU.

Имейте в виду: чистые сборки .NET содержат только данные, без кода. Является ли компилятор JIT для преобразования ИЛ в 32-разрядный или 64-разрядный код, определяется битностью запуска EXE.

+0

Проблема в том, что хост не будет запускать плагины. Еще хуже: я тоже не получаю сообщение об ошибке. Вот почему я подозреваю, что у хозяина возникают трудности с динамической загрузкой сборки. Хост - это родное приложение, предлагающее возможности расширения .NET. –

+0

Извините. Просто запустил ПК сегодня, и все работает. Спасибо, что пролил свет на эту проблему! –