Devo determinare a livello di programmazione se un assembly è x86, x64 o AnyCPU? C'è un quasi identico question, ma la soluzione che fornisceCome verificare a livello di programmazione se un assembly gestito è x86, x64 o AnyCPU?
Assembly assembly = Assembly.LoadFrom(fileName);
PortableExecutableKinds peKind;
ImageFileMachine imageFileMachine;
assembly.ManifestModule.GetPEKind(out peKind, out imageFileMachine);
fallisce quando si cerca di caricare un assembly a 64 bit da un processo a 32 bit (e viceversa).
Esiste un metodo infallibile per individuare a livello di codice il tipo di compilazione di un assieme?
MODIFICA: in base al suggerimento @BenVoigt, ho creato un small command line utility che controlla se la DLL è gestita o meno e se è x86/x64/AnyCPU. Spero che qualcuno lo trovi utile.
Hai provato ['ReflectionOnlyLoadFrom'] (http://msdn.microsoft.com/en-us/library/system.reflection.assembly.reflectiononlyloadfrom.aspx)? –
@BenVoigt Molto probabilmente è una risposta, non un commento :) – dasblinkenlight
@BenVoigt L'ho fatto ora e tu hai assolutamente ragione. Fai la risposta e io accetterò. – AngryHacker