使用 Mono 获取 Unix/Linux 系统架构

本文关键字:系统 Linux Mono 获取 Unix 使用 | 更新日期: 2023-09-27 18:37:01

如何使用Mono获取当前的操作系统架构?

使用 Mono 获取 Unix/Linux 系统架构

这可能是可能的。

没有办法做到这一点是适当的普通简.NET,环境(你期望它在哪里)不会公开它。

但是 Mono 具有

Mono.Unix.Native 命名空间(您需要添加对 Mono.Posix.dll 的引用),该命名空间具有 Syscall 类。 这暴露了uname,这可能会给你你想要的;这在Linux/Unix版本中似乎不是非常标准,我不确定Mono在这里做了多少规范化。

Mono.Unix.Native.Utsname results;
var res = Mono.Unix.Native.Syscall.uname(out results);
if(res != 0)
{
  throw new Exception("Syscall failed!");
}

当我在Mac上运行它时,results.machine设置为x86_64。 我没有方便的 Linux 机器来测试一致性;但如果有的话,这将是这样做的方法。