首页 / 知识

如何使用.NET判断我是在x64还是x86上?

2023-04-17 01:08:00

如何使用.NET判断我是在x64还是x86上?

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

我想根据他们所运行的平台为用户提供指向程序升级版本的正确链接,因此我需要知道我当前是在x86操作系统还是x64操作系统上运行。

我发现最好的方法是使用Environment.GetEnvironmentVariable("PROCESSOR_ARCHITECTURE"),但是我认为会为此内置一些功能吗?


.NET 4中引入了Environment.Is64BitOperatingSystem和Environment.Is64BitProcess。对于.NET 2,您需要尝试其他一些答案。


调用IsWow64Process以确定您的32位进程是否在64位操作系统上的WOW64中运行。您可以调用GetNativeSystemInfo来确切地了解它的含义:SYSTEM_INFOwProcessorArchitecture member对于32位将是PROCESSOR_ARCHITECTURE_INTEL,对于x64将是PROCESSOR_ARCHITECTURE_AMD64,对于英特尔的Itanium是PROCESSOR_ARCHITECTURE_IA64


您可以通过C#中使用的环境变量来确定很多-如何在Windows 64位上获取程序文件(x86)[这比Mike的答案更适合我,因为我碰巧对+1很感兴趣。程序文件目录名称]


使用Marshal.SizeOf检查IntPtr的大小。 32位= 4字节,64位= 8字节。

编辑:我不确定这是您在再次阅读问题后正在寻找的东西。


仅检查IntPtr.Size。您需要将目标平台作为AnyCPU。

从这里


运行操作系统链接平台

最新内容

相关内容

猜你喜欢