.NET アセンブリが x86 用にビルドされたのか、x64 用にビルドされたのかを判断するにはどうすればよいでしょうか? 質問する

.NET アセンブリが x86 用にビルドされたのか、x64 用にビルドされたのかを判断するにはどうすればよいでしょうか? 質問する

任意の .NET アセンブリのリストがあります。

各 DLL が x86 (x64 または任意の CPU ではなく) 用にビルドされているかどうかをプログラムで確認する必要があります。これは可能ですか?

ベストアンサー1

見るSystem.Reflection.AssemblyName.GetAssemblyName(string assemblyFile)

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

PowerShellの使用:

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

名前: Microsoft.GLEE
バージョン: 1.0.0.0
文化情報:
コードベース: file:///C:/projects/powershell/BuildAnalyzer/...
エスケープされたコードベース: ファイル:///C:/projects/powershell/BuildAnalyzer/...
プロセッサアーキテクチャ: MSIL
フラグ: 公開鍵
ハッシュアルゴリズム: SHA1
バージョン互換性: 同じマシン
キーペア:
FullName: Microsoft.GLEE、バージョン=1.0.0.0、カルチャ=neut...

ここ、プロセッサアーキテクチャターゲット プラットフォームを識別します。

  • Amd64 : x64 アーキテクチャに基づく 64 ビット プロセッサ。
  • Arm : ARM プロセッサ。
  • IA64 : 64ビットIntelアイタニウムプロセッサのみ。
  • MSIL : プロセッサとワードあたりのビット数に関しては中立です。
  • X86 : ネイティブまたは64ビットプラットフォーム上のWindows on Windows環境の32ビットIntelプロセッサ(ウォーワールド64)。
  • なし: プロセッサとワードあたりのビット数の不明または未指定の組み合わせ。

この例では、メソッドを呼び出しするために PowerShell を使用しています。

おすすめ記事