Dot-Net
如何確定 .NET 程序集是為 x86 還是 x64 建構的?
我有一個任意的.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 來呼叫該方法。