[英]How can I tell whether I am on x64 or x86 using .NET?
我想根據用戶運行的平台為我的用戶提供正確的程序升級版本鏈接,因此我需要知道我目前是在x86操作系統還是x64操作系統上運行。
我發現最好的是使用Environment.GetEnvironmentVariable("PROCESSOR_ARCHITECTURE")
,但我認為會有一些內置設施嗎?
環境.Is64BitOperatingSystem和Environment.Is64BitProcess正在.NET 4中引入。對於.NET 2,您需要嘗試其他一些答案。
調用IsWow64Process
以查明您的32位進程是否在64位操作系統上的WOW64中運行。 您可以撥打GetNativeSystemInfo
找出它到底是什么:在wProcessorArchitecture member
的SYSTEM_INFO
將PROCESSOR_ARCHITECTURE_INTEL
為32位, PROCESSOR_ARCHITECTURE_AMD64
用於x64和PROCESSOR_ARCHITECTURE_IA64
英特爾的Itanium。
您可以通過C#中使用的環境變量來確定很多- 如何在Windows 64位上獲取程序文件(x86) [這恰好比邁克的答案更適合我,因為我碰巧有興趣尋找Program Files目錄名]
使用Marshal.SizeOf檢查IntPtr的大小。 32位= 4字節,64位= 8字節。
編輯:在再次閱讀問題后,我不確定這是您正在尋找的內容。
只檢查IntPtr.Size
。 您需要將目標平台作為AnyCPU。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.