检查.net dll构建的目标平台是any cpu、x86、x64
程序员文章站
2022-07-02 13:46:32
有时候,需要检查构建的dll是否针对正确的平台 可以使用CorFlags.exe(它是.NET Framework SDK的一部分)从dll中查找此信息。运行CorFlags.exe将产生以下输出: 我们需要关注的两个参数是“PE”和“32BITREQ” 要以编程方式确定目标平台,我们可以使用M ......
有时候,需要检查构建的dll是否针对正确的平台
可以使用corflags.exe(它是.net framework sdk的一部分)从dll中查找此信息。运行corflags.exe将产生以下输出:
>> corflags "c:\example.dll" microsoft (r) .net framework corflags conversion tool. version 4.6.1590.0 copyright (c) microsoft corporation. all rights reserved. version : v4.0.30319 clr header: 2.5 pe : pe32 corflags : 0x3 ilonly : 1 32bitreq : 1 32bitpref : 0 signed : 0
我们需要关注的两个参数是“pe”和“32bitreq”
any cpu | pe: pe32, 32bitreq: 0 |
x86 | pe: pe32, 32bitreq: 1 |
x64 | pe: pe32+, 32bitreq: 0 |
要以编程方式确定目标平台,我们可以使用module.getpekind()
assembly a = assembly.reflectiononlyloadfrom(@"c:\example.dll"); portableexecutablekinds pekind; imagefilemachine machine; a.manifestmodule.getpekind(out pekind, out machine); console.writeline(pekind);
pekind的结果可以解释为:
any cpu | ilonly |
x86 | ilonly, required32bit |
x64 | ilonly, pe32plus |
翻译:https://malvinly.com/2016/11/16/check-whether-a-net-dll-is-built-for-any-cpu-x86-or-x64/
上一篇: 网传百度熊掌号团队解散