当前位置: 移动技术网 > IT编程>开发语言>.net > 检查.net dll构建的目标平台是any cpu、x86、x64

检查.net dll构建的目标平台是any cpu、x86、x64

2018年11月14日  | 移动技术网IT编程  | 我要评论

软卧代二等座,nanfone,阳光 高考

有时候,需要检查构建的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/

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网