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

我发现最好的是使用 Environment.GetEnvironmentVariable("PROCESSOR_ARCHITECTURE"), ,但我认为会有一些内置的设施来实现这一点?

有帮助吗?

解决方案

环境.Is64BitOperatingSystem 环境.Is64BitProcess 正在 .NET 4 中引入。对于 .NET 2,您需要尝试一些其他答案。

其他提示

称呼 IsWow64Process 查明您的 32 位进程是否在 64 位操作系统上的 WOW64 中运行。您可以致电 GetNativeSystemInfo 找出它到底是什么:这 wProcessorArchitecture memberSYSTEM_INFOPROCESSOR_ARCHITECTURE_INTEL 对于 32 位, PROCESSOR_ARCHITECTURE_AMD64 对于 x64 和 PROCESSOR_ARCHITECTURE_IA64 对于英特尔的安腾。

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

编辑:我不确定这是否是您再次阅读问题后所寻找的。

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

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

从这里

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top