.NET を使用して x64 または x86 を使用しているかどうかを確認するにはどうすればよいですか?
質問
ユーザーが実行しているプラットフォームに基づいて、プログラムのアップグレード バージョンへの正しいリンクを提供したいと考えています。そのため、現在実行しているのが x86 OS か x64 OS かを知る必要があります。
私が見つけた最高のものは使用しています Environment.GetEnvironmentVariable("PROCESSOR_ARCHITECTURE")
, 、しかし、これには何らかの組み込み機能があると思いますか?
解決
環境.Is64BitOperatingSystem そして 環境.Is64BitProcess .NET 4 で導入されています。.NET 2 の場合は、他の回答をいくつか試す必要があります。
他のヒント
電話 IsWow64Process
32 ビット プロセスが 64 ビット オペレーティング システム上の WOW64 で実行されているかどうかを確認します。電話することができます GetNativeSystemInfo
それが何であるかを正確に知るには:の wProcessorArchitecture member
の SYSTEM_INFO
になるだろう PROCESSOR_ARCHITECTURE_INTEL
32ビットの場合、 PROCESSOR_ARCHITECTURE_AMD64
x64の場合と PROCESSOR_ARCHITECTURE_IA64
インテルのItanium用。
Marshal.SizeOf で IntPtr のサイズを確認します。32 ビット = 4 バイト、64 ビット = 8 バイト。
編集:質問をもう一度読んだ後、これがあなたが探しているものであるかどうかわかりません。
で使用されているように、環境変数を介して多くのことを決定できます。 C# - Windows 64 ビットでプログラム ファイル (x86) を取得する方法 [そして、これは偶然、Program Files ディレクトリ名を見つけることに興味があったので +1 した Mike の回答よりも私に合っていました]
ちょうどチェックしてください IntPtr.Size
。ターゲット プラットフォームを AnyCPU にする必要があります。