1

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

4

1 回答 1

6

可能的。

没有办法做到这一点是正确的普通 Jane .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 机器。但如果有的话,这将是这样做的方法。

于 2012-07-22T02:44:02.507 回答