Como verificar programaticamente se um assembly gerenciado é x86, x64 ou AnyCP

Preciso determinar programaticamente se um assembly é x86, x64 ou AnyCPU? Existe um @ quase idêntiquestã, mas a solução que ele fornece

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

falha ao tentar carregar um assembly de 64 bits a partir de um processo de 32 bits (e vice-versa

xiste uma maneira infalível de descobrir programaticamente o tipo de compilação de um assembl

EDIT: Com base na sugestão de @BenVoigt, criei uma pequeno utilitário de linha de comando que verifica se a DLL é gerenciada ou não e se é x86 / x64 / AnyCPU. Espero que alguém ache úti