5

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

我发现最好的方法是使用Environment.GetEnvironmentVariable("PROCESSOR_ARCHITECTURE"),但我认为会有一些内置工具来解决这个问题?

4

5 回答 5

5

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

于 2009-12-10T14:26:07.430 回答
4

调用IsWow64Process以了解您的 32 位进程是否在 64 位操作系统上的 WOW64 中运行。您可以致电GetNativeSystemInfo了解它的确切含义:wProcessorArchitecture memberofSYSTEM_INFOPROCESSOR_ARCHITECTURE_INTEL用于 32 位、PROCESSOR_ARCHITECTURE_AMD64x64 和PROCESSOR_ARCHITECTURE_IA64Intel 的 Itanium。

于 2008-09-18T14:33:17.237 回答
0

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

编辑:再次阅读问题后,我不确定这是您要查找的内容。

于 2008-09-18T08:10:25.490 回答
0

您可以通过 C# 中使用的环境变量来确定很多- 如何在 Windows 64 位上获取程序文件 (x86) [这恰好比迈克的回答更适合我,因为我碰巧有兴趣找到程序文件目录名称]

于 2009-12-10T14:20:04.827 回答
-2

检查只是IntPtr.Size。您需要将目标平台设为 AnyCPU。

从这里

于 2008-09-18T08:27:37.290 回答