で。ネット2.0 C# アプリケーションでは、次のコードを使用してオペレーティング システム プラットフォームを検出します。
string os_platform = System.Environment.OSVersion.Platform.ToString();
これは「Win32NT」を返します。問題は、Windows Vista 64 ビットで実行している場合でも「Win32NT」が返されることです。
正しいプラットフォーム (32 ビットまたは 64 ビット) を確認する他の方法はありますか?
Windows 64 ビットで 32 ビット アプリケーションとして実行する場合も 64 ビットが検出されることに注意してください。
ベストアンサー1
.NET 4では、Environmentクラスに2つの新しいプロパティが追加されました。64ビットプロセスそして64ビットオペレーティングシステム興味深いことに、Reflector を使用すると、mscorlib の 32 ビット バージョンと 64 ビット バージョンで実装が異なっていることがわかります。32 ビット バージョンは、Is64BitProcess に対して false を返し、Is64BitOperatingSystem に対して P/Invoke 経由で IsWow64Process を呼び出します。64 ビット バージョンは、両方に対して true を返します。