学无先后达者为师!
不忘初心,砥砺前行。

dotnet 判断应用是否运行于 ARM64 架构的处理器上

从 .NET Standard 1.1 开始,dotnet 新增了 Architecure 枚举,用于表示处理器的架构(X86、X64、Arm或Arm64)。可参考微软的官方文档:

https://learn.microsoft.com/en-us/dotnet/api/system.runtime.interopservices.architecture?view=netstandard-1.1

仅需一行代码即可获取:

Console.WriteLine("ProcessArchitecture:");
Console.WriteLine(System.Runtime.InteropServices.RuntimeInformation.ProcessArchitecture);

在 Arm64 处理器的机器上,输出如下:

ProcessArchitecture:
Arm64

在 X64 处理器的机器上,输出如下:

ProcessArchitecture:
X64

如果需要在更低版本的 Framework 上获取 CPU 是否是 ARM64 架构,可以使用以下代码(仅支持 Windows 平台):

//https://stackoverflow.com/questions/54456140/how-to-detect-were-running-under-the-arm64-version-of-windows-10-in-net
public static class ArchitectureInfo
{
	public static bool IsArm64()
	{
		var handle = Process.GetCurrentProcess().Handle;
		IsWow64Process2(handle, out var processMachine, out var nativeMachine);

		return nativeMachine == 0xaa64;
	}
	
	[DllImport("kernel32.dll", SetLastError = true)]
	private static extern bool IsWow64Process2(
		IntPtr process,
		out ushort processMachine,
		out ushort nativeMachine
	);
}

赞(2) 打赏
未经允许不得转载:码农很忙 » dotnet 判断应用是否运行于 ARM64 架构的处理器上

评论 抢沙发

给作者买杯咖啡

非常感谢你的打赏,我们将继续给力更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫

微信扫一扫

登录

找回密码

注册