问题:
我需要在我的 C# 应用程序中进行一些系统调用。 不幸的是,这在 Linux 上的表现与在 UNIX 上的表现不同。
现在我曾经像这样在运行时切换操作系统
If Environment.OSVersion.Platform = System.PlatformID.Unix Then
' Linux/Unix '
ElseIf Environment.OSVersion.Platform = System.PlatformID.MacOSX Then
' Apple '
Else
' Windows '
End If
现在的问题是我需要区分 UNIX 和 Linux,因为它们是不同的。
有什么方法可以判断操作系统是 Linux 还是 Unix? 最好不要调用 uname -a
我不想放弃 Unix 而只做 Linux,因为微软没有添加 PlatformID.Linux...
最佳答案
您需要使用“uname -a”来区分 Linux 和 Unix,以及 OSX。由于历史原因,Mono 将 OSX 报告为 Unix,而不是 MacOSX。
此处提供了一些使用 uname 的代码: http://github.com/jpobst/Pinta/blob/master/Pinta/Platform.cs
关于vb.net - C# System.PlatformID.Unix 与 Linux,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3434757/