Как получить PEKind и ImageFileMachine сборки AMD64 из приложения x86 .NET (и наоборот)? - PullRequest
0 голосов
/ 20 мая 2009

Я пишу инструмент проверки правильности установки для нашего продукта, и мне нужно получить некоторую информацию PE из нескольких установленных сборок. Независимо от того, на какой платформе установлен наш продукт, мы отправляем сборки AMD64, x86 и MSIL в определенные места, чтобы пользователь мог создавать проекты развертывания для этих платформ.

Проблема в том, что, используя следующий код:

Module manifestModule = Assembly.LoadFile(fileName).ManifestModule;
ImageFileMachine m;
PortableExecutableKinds pe;
manifestModule.GetPEKind(out pe, out m);

Assembly.LoadFile (...) сломается, если приложение работает под управлением x86 и пытается загрузить сборку AMD64 или наоборот.

Я нашел эти связанные, но не совсем:

1 Ответ

0 голосов
/ 20 мая 2009

Попробуйте использовать Assembly.ReflectionOnlyLoad. Это позволит вам загрузить сборку в память, но не выполнит в ней никакого кода. это позволит загружать сборки x64 для отражения в процессе x86.

...