分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 前端开发

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

发布时间:2023-09-06 02:22责任编辑:熊小新关键词:暂无标签

有时候,需要检查构建的dll是否针对正确的平台

可以使用CorFlags.exe(它是.NET Framework SDK的一部分)从dll中查找此信息。运行CorFlags.exe将产生以下输出:

>> CorFlags "C:\example.dll"Microsoft (R) .NET Framework CorFlags Conversion Tool. ?Version ?4.6.1590.0Copyright (c) Microsoft Corporation. ?All rights reserved.Version ??: v4.0.30319CLR Header: 2.5PE ???????: PE32CorFlags ?: 0x3ILONLY ???: 132BITREQ ?: 132BITPREF : 0Signed ???: 0

我们需要关注的两个参数是“PE”和“32BITREQ”??

Any CPUPE: PE32, 32BITREQ: 0
x86PE: PE32, 32BITREQ: 1
x64PE: 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 CPUILOnly
x86ILOnly, Required32Bit
x64ILOnly, PE32Plus

 示例

翻译:https://malvinly.com/2016/11/16/check-whether-a-net-dll-is-built-for-any-cpu-x86-or-x64/

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

原文地址:https://www.cnblogs.com/wuxubiao/p/9951648.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved