本文介绍了如何确定.NET程序集是为x86还是x64构建的?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个.NET程序集的任意列表。
I've got an arbitrary list of .NET assemblies.
我需要以编程方式检查每个DLL是否针对x86构建(而不是x64或Any CPU) )。
I need to programmatically check if each DLL was built for x86 (as opposed to x64 or Any CPU). Is this possible?
推荐答案
看看 System.Reflection.AssemblyName.GetAssemblyName(string assemblyFile)
您可以从返回的AssemblyName实例中检查程序集元数据:
You can examine assembly metadata from the returned AssemblyName instance:
使用 PowerShell :
[36] C:\> [reflection.assemblyname]::GetAssemblyName("${pwd}\Microsoft.GLEE.dll") | fl
Name : Microsoft.GLEE
Version : 1.0.0.0
CultureInfo :
CodeBase : file:///C:/projects/powershell/BuildAnalyzer/...
EscapedCodeBase : file:///C:/projects/powershell/BuildAnalyzer/...
ProcessorArchitecture : MSIL
Flags : PublicKey
HashAlgorithm : SHA1
VersionCompatibility : SameMachine
KeyPair :
FullName : Microsoft.GLEE, Version=1.0.0.0, Culture=neut...
在这里,标识目标平台。
Here, ProcessorArchitecture identifies target platform.
- Amd64 :基于x64架构的64位处理器。
- 手臂:ARM处理器。
- IA64 :仅适用于64位Intel Itanium处理器。
- MSIL :中立
- X86 :32位Intel处理器,本机或Windows环境下的Windows上64位平台(WOW64)。
- 无:处理器和每字位数的未知或未指定组合。
- Amd64: A 64-bit processor based on the x64 architecture.
- Arm: An ARM processor.
- IA64: A 64-bit Intel Itanium processor only.
- MSIL: Neutral with respect to processor and bits-per-word.
- X86: A 32-bit Intel processor, either native or in the Windows on Windows environment on a 64-bit platform (WOW64).
- None: An unknown or unspecified combination of processor and bits-per-word.
在此示例中,我使用PowerShell来调用该方法。
I'm using PowerShell in this example to call the method.
这篇关于如何确定.NET程序集是为x86还是x64构建的?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!