2016-11-12 62 views
4

如何收集硬件信息如果System.Management.dllDot Net Core不兼容。无法在Dot Net Core中使用System.Management.dll

我怎么样的处理器ID的设备信息,磁盘卷号等

+0

猜你必须定义你正在与之交互的机器,然后尝试调用本机调用这些信息(PInvokes为win机器)。 – Karolis

+0

对于解决方法,我使它成为新项目中安装的nuget包但它不识别名称空间。无法使用类。它显示生成错误 – user2449952

+3

目前不可能,我已经创建了一个关于他们的回购的问题,最近有一些活动。 https://github.com/dotnet/corefx/issues/3324#issuecomment-262651454 –

回答

1

我目前移植使用System.Management得到一些硬件信息,净框架的项目,我也到了一个死胡同,因为System.Management与Net Core不兼容。

我找到的解决方法是使用Process.StartSystem.Diagnostics执行PowerShell命令来获得这些信息,例如,让你可以使用命令Get-WmiObject Win32_BaseBoard | select SerialNumber主板序列号,就可以更改命令处理输出和只有序列号,或者甚至以编程方式处理输出。

您还可以添加一些ifs,这取决于您可以提供给Process.Start特定OS命令的当前操作系统,例如,对于linux,您需要处理与dmidecode相关的命令。

这种方法的唯一不利方面是它的A LOT SLOWER与System.Management相比。

相关问题