मुझे प्रोग्रामेटिक रूप से निर्धारित करने की आवश्यकता है कि एक असेंबली x86, x64 या AnyCPU है? वहाँ लगभग एक समान question है, लेकिन समाधान यहप्रोग्रामेटिक रूप से कैसे जांचें कि प्रबंधित प्रबंधित असेंबली x86, x64 या AnyCPU है?
Assembly assembly = Assembly.LoadFrom(fileName);
PortableExecutableKinds peKind;
ImageFileMachine imageFileMachine;
assembly.ManifestModule.GetPEKind(out peKind, out imageFileMachine);
में विफल रहता है जब एक 32-बिट प्रक्रिया (और इसके विपरीत) से एक 64-बिट विधानसभा लोड करने की कोशिश में प्रावधान है कि।
प्रोग्रामिंग के संकलन प्रकार को असेंबली के तरीके का पता लगाने का मूर्ख तरीका है?
संपादित करें: @BenVoigt सुझाव के आधार पर, मैंने small command line utility बनाया है जो जांचता है कि DLL प्रबंधित है या नहीं और क्या इसका x86/x64/AnyCPU है। मुझे आशा है कि किसी को यह उपयोगी लगेगा।
क्या आपने ['ReflectionOnlyLoadFrom'] (http://msdn.microsoft.com/en-us/library/system.reflection.assembly.reflectiononlyloadfrom.aspx) की कोशिश की है? –
@BenVoigt यह एक उत्तर है, एक टिप्पणी नहीं :) – dasblinkenlight
@BenVoigt मैंने अभी किया और आप बिल्कुल सही हैं। इसे उत्तर दें और मैं इसे स्वीकार करूंगा। – AngryHacker