Je suis en train d'écrire un outil de validation d'installation pour notre produit et j'ai besoin de récupérer des informations PE à partir de plusieurs assemblages installés. Quelle que soit la plate-forme sur laquelle notre produit est installé, nous expédions des assemblages AMD64, x86 et MSIL à certains endroits pour permettre à l'utilisateur de créer des projets de déploiement pour ces plates-formes.Comment obtenir PEKind et ImageFileMachine d'un assemblage AMD64 à partir d'une application x86 .NET (et viceversa)?
Le problème est que, en utilisant le code suivant:
Module manifestModule = Assembly.LoadFile(fileName).ManifestModule;
ImageFileMachine m;
PortableExecutableKinds pe;
manifestModule.GetPEKind(out pe, out m);
Assembly.LoadFile (...) cassera si l'application est en cours d'exécution comme x86 et essayer de charger un ensemble AMD64 ou vice-versa.
Je trouve ces associés, mais, pas tout à fait:
- How to determine if a .NET assembly was built for x86 or x64?Il ne dit pas comment pourriez-vous creuser sur un ensemble AMD64 à partir d'un processus x86. J'ai vraiment vraiment besoin d'ImageFileMachine et de PEKinds en raison du grand nombre d'assemblages que nous avons et des propriétés que nous devons déterminer.