Dot-Net

如何確定 .NET 程序集是為 x86 還是 x64 建構的?

  • November 6, 2008

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

我需要以程式方式檢查每個 DLL 是否是為 x86(而不是 x64 或任何 CPU)建構的。這可能嗎?

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

您可以從返回的 AssemblyName 實例中檢查程序集元數據:

使用PowerShell

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

Name : 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 來呼叫該方法。

引用自:https://stackoverflow.com/questions/270531