2016-11-12 137 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相比。

相關問題