小编典典

如何确定 .NET 程序集是为 x86 还是 x64 构建的?

all

我有一个任意的.NET 程序集列表。

我需要以编程方式检查每个 DLL 是否是为 x86(而不是 x64 或任何 CPU)构建的。这可能吗?


阅读 111

收藏
2022-04-01

共1个答案

小编典典

看着System.Reflection.AssemblyName.GetAssemblyName(string assemblyFile)

您可以从返回的 AssemblyName 实例中检查程序集元数据:

使用 PowerShell

[36] C:\> [reflection.assemblyname]::GetAssemblyName("${pwd}\Microsoft.GLEE.dll") | 佛罗里达州

名称:Microsoft.GLEE
版本:1.0.0.0
文化信息:
代码库:file:///C:/projects/powershell/BuildAnalyzer/...
EscapedCodeBase : file:///C:/projects/powershell/BuildAnalyzer/...
**处理器架构:MSIL**
标志:公钥
哈希算法:SHA1
版本兼容性:SameMachine
密钥对:
全名:Microsoft.GLEE,版本=1.0.0.0,文化=中性...

在这里,ProcessorArchitecture标识目标平台。

  • Amd64 :基于 x64 架构的 64 位处理器。
  • Arm :一个ARM处理器。
  • IA64 :仅限 64 位 Intel Itanium 处理器。
  • MSIL :与处理器和每字位数无关。
  • X86 :32 位 Intel 处理器,本机或在 64 位平台 (WOW64) 上的 Windows on Windows 环境中。
  • :处理器和每字位数的未知或未指定组合。

在此示例中,我使用 PowerShell 来调用该方法。

2022-04-01