¿Cómo verificar mediante programación si un ensamblado administrado es x86, x64 o AnyCPU?

¿Necesito determinar programáticamente si un ensamblaje es x86, x64 o AnyCPU? Hay una @ casi idéntipregunt, pero la solución que proporciona

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

falla al intentar cargar un ensamblado de 64 bits desde un proceso de 32 bits (y viceversa).

Existe una manera infalible de averiguar mediante programación el tipo de compilación de un ensamblaje?

EDIT: Basado en la sugerencia de @BenVoigt, creé unsmall utilidad de línea de comandos que comprueba si la DLL se administra o no y si es x86 / x64 / AnyCPU. Espero que alguien lo encuentre útil

Respuestas a la pregunta(2)

Su respuesta a la pregunta