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

Rob*_*ert 1 c# architecture mono

如何使用Mono获得当前的OS架构?

Kev*_*ose 6

可能是可能的.

没有办法做到这一点是正确的简单.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!");
}
Run Code Online (Sandbox Code Playgroud)

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