1

.NETアセンブリがMono.Cecilを使用して32ビットまたは64ビット用に特別に構築されているかどうかを確認できますか?または、最初にアセンブリをロードせずに見つける他の方法。

4

2 に答える 2

2

mono-ceciを使用すると、これを行うことができます(情報はモジュールごとに利用可能です)。

AssemblyDefinition asm = AssemblyFactory.GetAssembly("myassembly.dll");

foreach (ModuleDefinition module in asm.Modules)
{
    Console.WriteLine("Module " + module.Name);
    Console.WriteLine("IsPE64 " + module.Image.PEOptionalHeader.StandardFields.IsPE64);
}
于 2013-03-20T15:21:47.750 に答える
2

moduleDefinition.ArchitectureタイプのTargetArchitecture魔女は次のように定義されます:

public enum TargetArchitecture {
    I386,
    AMD64,
    IA64,
    ARMv7,
}

moduleDefinition.Attributesタイプの別のプロパティがありますModuleAttributes

[Flags]
public enum ModuleAttributes {
    ILOnly = 1,
    Required32Bit = 2,
    StrongNameSigned = 8,
    Preferred32Bit = 0x00020000,
}
于 2018-07-17T09:51:49.057 に答える