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

如何使用.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。

从这里


推荐阅读

    linux运行图形界命令?

    linux运行图形界命令?,系统,密码,地址,电脑,图形界面,地方,工具,界面,终端,

    linux怎样运行命令?

    linux怎样运行命令?,系统,工作,信息,基础,地址,命令,目录,工具,密码,一致,Lin

    linux操作数据库命令?

    linux操作数据库命令?,地址,服务,系统,密码,数据库,工具,名字,首页,命令,参

    linux系命令的操作?

    linux系命令的操作?,工作,系统,信息,网络,命令,基础,简介,管理,目录,操作,lin

    linux编译完运行命令?

    linux编译完运行命令?,系统,代码,环境,工具,信息,命令,文件,程序,终端,编辑,

    linux命令程序运行?

    linux命令程序运行?,状态,系统,服务,情况,命令,进程,软件,数据,发行,时间,Lin

    linux显示操作命令?

    linux显示操作命令?,系统,工作,地址,信息,管理,命令,目录,基础,工具,标准,lin

    linux硬链接删除命令?

    linux硬链接删除命令?,数据,系统,不了,时间,名称,链接,文件,档案,地方,设备,l

    linux运行脚本命令?

    linux运行脚本命令?,系统,代码,服务,文件,工具,平台,网站,脚本,命令,方法,Lin

    linux命令后加运行?

    linux命令后加运行?,状态,暂停,工具,单位,进程,环境,网络,系统,权威,第一,mv

    ssh运行linux命令?

    ssh运行linux命令?,地址,服务,系统,软件,工具,电脑,网络,密码,名称,命令,在li

    linux运行多个命令?

    linux运行多个命令?,环境,软件,系统,工作,服务,连续,命令,指令,分号,冲突,lin

    linux常用链接命令?

    linux常用链接命令?,系统,工作,地址,网络,信息,命令,密码,管理,标准,服务,在L

    linux操作常用命令?

    linux操作常用命令?,工作,系统,地址,信息,命令,目录,管理,标准,基础,工具,lin

    linux运行命令查看?

    linux运行命令查看?,系统,信息,状态,命令,名称,情况,地址,软件,进程,第一,lin

    linux操作命令重命名?

    linux操作命令重命名?,图片,软件,名称,名字,文件,命令,状态,代码,工具,系统,L

    linux中命令运行软件?

    linux中命令运行软件?,软件,系统,名称,工具,电脑,位置,环境,中心,在线,初级,

    linux链接网络命令行?

    linux链接网络命令行?,地址,系统,网络,工作,软件,工具,信息,密码,服务,标准,l

    脚本linux上运行命令?

    脚本linux上运行命令?,工具,代码,时间,密码,系统,环境,名字,位置,第三,下来,t

    linux目录操作命令d?

    linux目录操作命令d?,工作,系统,信息,命令,情况,基础,数据,名称,地址,目录,li