我想根據運行的平臺爲我的用戶提供正確的升級版本的鏈接,因此我需要知道我目前是在x86操作系統還是在x64操作系統上運行。如何判斷我是使用.NET的x64還是x86?
我發現的最好的方法是使用Environment.GetEnvironmentVariable("PROCESSOR_ARCHITECTURE")
,但我認爲會有一些內置的設施?
我想根據運行的平臺爲我的用戶提供正確的升級版本的鏈接,因此我需要知道我目前是在x86操作系統還是在x64操作系統上運行。如何判斷我是使用.NET的x64還是x86?
我發現的最好的方法是使用Environment.GetEnvironmentVariable("PROCESSOR_ARCHITECTURE")
,但我認爲會有一些內置的設施?
Environment.Is64BitOperatingSystem和Environment.Is64BitProcess正在.NET 4中引入。對於.NET 2,您需要嘗試一些其他答案。
檢查只是IntPtr.Size
。您需要將目標平臺作爲AnyCPU。
呼叫IsWow64Process
找出如果您的32位過程在WOW64運行64位操作系統上。你可以撥打GetNativeSystemInfo
找出它到底是什麼:wProcessorArchitecture member
的SYSTEM_INFO
將爲PROCESSOR_ARCHITECTURE_INTEL
爲32位,PROCESSOR_ARCHITECTURE_AMD64
爲x64和PROCESSOR_ARCHITECTURE_IA64
爲英特爾的安騰。
您可以確定通過環境變量很多,如C# - How to get Program Files (x86) on Windows 64 bit使用[而這恰巧適合我不是小李的答案,我對此+1,因爲我正好是熱衷於尋找Program Files目錄名更好]
你應該接受一個答案或解釋你最終做了什麼並接受。 – 2009-12-10 14:07:01