我有一个任意的.NET程序集列表.
我需要以编程方式检查每个DLL是否是为x86构建的(而不是x64或任何CPU).这可能吗?
我需要使用为x86,x64和IA64制作的Windows可执行文件.我想通过检查文件本身以编程方式找出平台.
我的目标语言是PowerShell,但C#示例可以.如果您知道所需的逻辑很好,那么其中任何一个都会失败.
我需要以编程方式确定程序集是x86,x64还是AnyCPU?有一个几乎相同的问题,但它提供的解决方案
Assembly assembly = Assembly.LoadFrom(fileName);
PortableExecutableKinds peKind;
ImageFileMachine imageFileMachine;
assembly.ManifestModule.GetPEKind(out peKind, out imageFileMachine);
Run Code Online (Sandbox Code Playgroud)
尝试从32位进程加载64位程序集时失败(反之亦然).
是否有一种以编程方式查找程序集的编译类型的万无一失的方法?
编辑:基于@BenVoigt建议,我创建了一个小命令行实用程序,用于检查DLL是否受管理以及是否为x86/x64/AnyCPU.我希望有人发现它有用.