.NET を使用して x64 または x86 を使用しているかどうかを確認するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/90855

  •  01-07-2019
  •  | 
  •  

質問

ユーザーが実行しているプラ​​ットフォームに基づいて、プログラムのアップグレード バージョンへの正しいリンクを提供したいと考えています。そのため、現在実行しているのが x86 OS か x64 OS かを知る必要があります。

私が見つけた最高のものは使用しています Environment.GetEnvironmentVariable("PROCESSOR_ARCHITECTURE"), 、しかし、これには何らかの組み込み機能があると思いますか?

役に立ちましたか?

解決

環境.Is64BitOperatingSystem そして 環境.Is64BitProcess .NET 4 で導入されています。.NET 2 の場合は、他の回答をいくつか試す必要があります。

他のヒント

電話 IsWow64Process 32 ビット プロセスが 64 ビット オペレーティング システム上の WOW64 で実行されているかどうかを確認します。電話することができます GetNativeSystemInfo それが何であるかを正確に知るには:の wProcessorArchitecture memberSYSTEM_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 にする必要があります。

ここから

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top