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