1. ホーム
  2. .net

[解決済み] .NETアセンブリがx86またはx64用にビルドされたかどうかを判断するにはどうすればよいですか?

2022-03-16 13:18:13

質問

.NETアセンブリの任意のリストを持っています。

各DLLがx86用にビルドされたかどうかをプログラムでチェックする必要があります(x64または任意のCPUとは対照的に)。これは可能ですか?

どのように解決するのですか?

見てください System.Reflection.AssemblyName.GetAssemblyName(string assemblyFile)

返されたAssemblyNameインスタンスから、アセンブリのメタデータを調べることができます。

使用方法 パワーシェル :

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

名称:Microsoft.GLEE
バージョン : 1.0.0.0
文化情報(CultureInfo) :
CodeBase : file:///C:/projects/powershell/BuildAnalyzer/...
EscapedCodeBase : file:///C:/projects/powershell/BuildAnalyzer/....。


プロセッサーアーキテクチャ:MSIL


フラグ: PublicKey
ハッシュアルゴリズム:SHA1
バージョン互換性 : 同一機種
キーペア :
FullName : Microsoft.GLEE, Version=1.0.0.0, Culture=neut... 

これです。 プロセッサーアーキテクチャ は、ターゲットプラットフォームを指定します。

  • Amd64 : x64アーキテクチャをベースとした64ビットプロセッサ。
  • : ARM プロセッサ。
  • IA64 : 64ビット Intel Itanium プロセッサのみ。
  • MSIL : プロセッサとビット単価に関して中立的である。
  • X86 : 32ビットIntelプロセッサ、ネイティブまたは64ビットプラットフォーム上のWindows on Windows環境(WOW64)のいずれかを使用します。
  • なし : プロセッサとビット単価の組み合わせが不明または特定できないもの。

この例ではPowerShellを使ってメソッドを呼び出しています。