How to Tell if a .NET Assembly Was Compiled as x86, x64 or Any CPU

后端 未结 4 508
星月不相逢
星月不相逢 2020-12-05 17:21

What\'s the easiest way to discover (without access to the source project) whether a .NET assembly DLL was compiled as \'x86\', \'x64\' or \'Any CPU\'?

Update: A com

4条回答
  •  孤城傲影
    2020-12-05 18:17

    C# snippet, based on the Powershell answers:

    var modules = assembly.GetModules();
    var kinds = new List();
    var images = new List();
    foreach (var module in modules)
    {
        PortableExecutableKinds peKinds;
        ImageFileMachine imageFileMachine;
        module.GetPEKind(out peKinds, out imageFileMachine);
    
        kinds.Add(peKinds);
        images.Add(imageFileMachine);
    }
    
    var distinctKinds = kinds.Distinct().ToList();
    var distinctImages = images.Distinct().ToList();
    

提交回复
热议问题