繁体   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