任意の .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 を使用しています。