我尝试获取Linux上的系统信息。我当前的实现适用于Windows,但不适用于Linux。以我为例,我在.NET CORE 2.2中使用最小的debian 9.8。 有关的重要信息:处理器,硬盘,内存。 令人毛骨悚然的是,在Linux debian 9上它告诉我OSPlatform是Windows。我希望有人能给我一些想法。
我为使用kernel32.dll的Windows编写了一个小库。我们无法在linux上使用kernel32.dll,因此我需要另一种实现方式来让linux接收信息(处理器,硬盘,内存)。
答案 0 :(得分:0)
我相信this issue已在.Net核心GitHub存储库中打开。 因此,我相信没有.Net核心API可以帮助您实现这一目标。
我可以想到一种解决方法。 您可以选择从C#代码运行bash命令,如下所示(reference):
public static class ShellHelper
{
public static string Bash(this string cmd)
{
var escapedArgs = cmd.Replace("\"", "\\\"");
var process = new Process()
{
StartInfo = new ProcessStartInfo
{
FileName = "/bin/bash",
Arguments = $"-c \"{escapedArgs}\"",
RedirectStandardOutput = true,
UseShellExecute = false,
CreateNoWindow = true,
}
};
process.Start();
string result = process.StandardOutput.ReadToEnd();
process.WaitForExit();
return result;
}
}
然后,您可以运行bash命令以获取HTML格式(reference)的输出:
var output = "sudo lshw -html > hardwareinfo.html".Bash();
lshw
将在指定路径下创建HTML文件。您可以选择以某种方式解析该信息以获取信息。
希望这对您有用。