我想根据用户运行的平台向我的用户提供正确的程序升级版本链接,因此我需要知道我目前是在x86操作系统还是x64操作系统上运行。
我发现最好的是使用Environment.GetEnvironmentVariable("PROCESSOR_ARCHITECTURE")
,但我认为会有一些内置设施吗?
答案 0 :(得分:5)
Environment.Is64BitOperatingSystem 和Environment.Is64BitProcess。对于.NET 2,您需要尝试其他一些答案。
答案 1 :(得分:4)
调用IsWow64Process
以确定您的32位进程是否在64位操作系统上的WOW64中运行。您可以致电GetNativeSystemInfo
查看确切内容:wProcessorArchitecture member
SYSTEM_INFO
为PROCESSOR_ARCHITECTURE_INTEL
为32位,PROCESSOR_ARCHITECTURE_AMD64
为x64和{{} 1}}用于英特尔的Itanium。
答案 2 :(得分:0)
使用Marshal.SizeOf检查IntPtr的大小。 32位= 4字节,64位= 8字节。
编辑:在再次阅读问题后,我不确定这是您正在寻找的内容。
答案 3 :(得分:0)
你可以通过C# - How to get Program Files (x86) on Windows 64 bit中使用的环境变量来确定很多[并且这恰好比迈克的答案更适合我,因为我碰巧有兴趣找到程序文件目录名称,所以我得到了+1)
答案 4 :(得分:-2)
只检查IntPtr.Size
。您需要将目标平台作为AnyCPU。