Как программно проверить, является ли управляемая сборка x86, x64 или AnyCPU?

Мне нужно программно определить, является ли сборка x86, x64 или AnyCPU? Есть почти идентичный вопрос , но решение, которое оно предоставляет

Assembly assembly = Assembly.LoadFrom(fileName);
PortableExecutableKinds peKind;
ImageFileMachine imageFileMachine;
assembly.ManifestModule.GetPEKind(out peKind, out imageFileMachine);

, дает сбой при попытке загрузить 64-битную сборку из 32-битного процесса (и наоборот).

Есть ли надежный способ программного определения типа компиляции сборки?

РЕДАКТИРОВАТЬ: Основываясь на предложении @BenVoigt, я создал небольшую утилиту командной строки , которая проверяет, управляется ли DLL или нет и является ли ее x86 / x64 / AnyCPU. Надеюсь, кто-нибудь найдет это полезно.

7
задан Community 23 May 2017 в 12:03
поделиться