簡體   English   中英

如何判斷我是使用.NET在x64還是x86上?

[英]How can I tell whether I am on x64 or x86 using .NET?

我想根據用戶運行的平台為我的用戶提供正確的程序升級版本鏈接,因此我需要知道我目前是在x86操作系統還是x64操作系統上運行。

我發現最好的是使用Environment.GetEnvironmentVariable("PROCESSOR_ARCHITECTURE") ,但我認為會有一些內置設施嗎?

環境.Is64BitOperatingSystemEnvironment.Is64BitProcess正在.NET 4中引入。對於.NET 2,您需要嘗試其他一些答案。

調用IsWow64Process以查明您的32位進程是否在64位操作系統上的WOW64中運行。 您可以撥打GetNativeSystemInfo找出它到底是什么:在wProcessorArchitecture memberSYSTEM_INFOPROCESSOR_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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM