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