C# 使用System.Management在.NET内核中获取UUID

C# 使用System.Management在.NET内核中获取UUID,c#,.net,.net-core,system.management,C#,.net,.net Core,System.management,我正在开发一个.NET核心应用程序。我的要求是我必须得到主板的UUID。代码是: static void Main(string[] args) { string uuid = string.Empty; ManagementClass mc = new ManagementClass("Win32_ComputerSystemProduct"); ManagementObjectCollection moc = mc.GetInstances(); fore

我正在开发一个.NET核心应用程序。我的要求是我必须得到主板的UUID。代码是:

static void Main(string[] args)
{
    string uuid = string.Empty;

    ManagementClass mc = new ManagementClass("Win32_ComputerSystemProduct");
    ManagementObjectCollection moc = mc.GetInstances();

    foreach (ManagementObject mo in moc)
    {
        uuid = mo.Properties["UUID"].Value.ToString();
        break;
    }

    Console.WriteLine("UUID : " + uuid);

    Console.ReadKey();
}
这段代码在windows机器上运行得非常好,但当我转到linux机器时,会出现以下错误:

Unhandled exception. System.PlatformNotSupportedException: System.Management currently is only supported for Windows desktop applications.                                                                             
at System.Management.ManagementBaseObject..ctor(SerializationInfo info, StreamingContext context)
at System.Management.ManagementObject..ctor()
at System.Management.ManagementClass..ctor(String path)
at uniqueSystemId.Program.Main(String[] args)

linux是否不支持系统管理?如果没有,如何在linux和windows机器上获取主板的UUID

如果您试图在linux上使用Win32特定的API,那么它不起作用也就不足为奇了。Linux有UUID吗?同意。我怎样才能解决这个问题@Neil您可能需要深入研究/proc或/dev,而且不太可能有一些现有代码来完成这项工作,因此您必须自己编写。对基本上开始编程,不依赖WMI(System.Management访问的系统)-Windows(不,不可能。System.Management还需要身份验证,除非它会在域中自动使用您的帐户。您试图在Linux上使用Win32特定的API,它不起作用并不奇怪。Linux甚至有UUID吗?同意。我如何解决此问题?@Neil您可能需要深入研究/proc或/dev,而我不太可能有一些现有的代码来做这件事,所以你必须自己写。是的。基本上开始编程,不要依赖WMI(哪个System.Management访问)-Windows(不。不行。System.Management也需要身份验证,除非它在域中自动使用你的帐户。