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

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

最佳答案

System.Reflection.AssemblyName.GetAssemblyName(string assemblyFile)
您可以从返回的AssemblyName实例检查程序集元数据:

使用 PowerShell :

[36] C:\> [reflection.assemblyname]::GetAssemblyName(“$ {pwd}\Microsoft.GLEE.dll”)| FL

名称:Microsoft.GLEE
版本:1.0.0.0
CultureInfo:
代码库:file:///C:/projects/powershell/BuildAnalyzer/...
EscapedCodeBase:file:///C:/projects/powershell/BuildAnalyzer/...
处理器架构:MSIL
标志:公钥
哈希算法:SHA1
版本兼容性:SameMachine
key 对:
FullName:Microsoft.GLEE,Version = 1.0.0.0,Culture = neut ...

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

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

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

    关于.net - 如何确定.NET程序集是为x86还是x64构建的?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/270531/

    10-12 07:36