C# 使用System.Management在.NET内核中获取UUID
我正在开发一个.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
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也需要身份验证,除非它在域中自动使用你的帐户。