如何以跨平台方式使用 .NET 5 获取硬件信息?
How do I get Hardware Info with .NET 5 in a Cross Platform Way?
我正在开发 .NET 5 控制台应用程序,希望能够读取一些基本系统信息,例如 CPU 温度、内存使用情况、CPU 使用情况等。我的开发机器是 运行 windows 但应用程序部署到 Linux 机器,因此我想避免为 OS 编写两组不同的代码。
如何以跨平台方式执行此操作?有很多 Windows API 和调用可以做到这一点,但我也需要 Linux 才能工作。
有一个 github 问题未解决以将其标准化为 .net 运行时的一部分。也许我们会在 .net 6 或 7 中看到这一点,谁知道呢……https://github.com/dotnet/runtime/issues/22948
这是更好的库之一:https://github.com/openhardwaremonitor/openhardwaremonitor。他们似乎尝试了一些 Linux 支持。
对于 CPU 这样的用法,您可能会成功使用 How to get the CPU Usage in C#? (Windows)。
对于Linux上的CPU,命令行解析结果:https://phoenixnap.com/kb/check-cpu-usage-load-linux。简而言之:
sudo apt install sysstat
mpstat 1
GC class 具有获取 C# 运行时使用的内存的方法。对于系统内存,这里有一些资源:
Windows: How do you get total amount of RAM the computer has?
Linux: 运行 free -m
并使用 Process
class.
解析结果
其他可能对 Linux 有帮助的链接:
- https://raspberrypi.stackexchange.com/questions/117094/raspberry-pi-with-linux-and-c-on-it-how-to-read-hardware-sensor-info
- How to identify the hardware details of a Linux/Mac machine using .Net Core
我正在开发 .NET 5 控制台应用程序,希望能够读取一些基本系统信息,例如 CPU 温度、内存使用情况、CPU 使用情况等。我的开发机器是 运行 windows 但应用程序部署到 Linux 机器,因此我想避免为 OS 编写两组不同的代码。
如何以跨平台方式执行此操作?有很多 Windows API 和调用可以做到这一点,但我也需要 Linux 才能工作。
有一个 github 问题未解决以将其标准化为 .net 运行时的一部分。也许我们会在 .net 6 或 7 中看到这一点,谁知道呢……https://github.com/dotnet/runtime/issues/22948
这是更好的库之一:https://github.com/openhardwaremonitor/openhardwaremonitor。他们似乎尝试了一些 Linux 支持。
对于 CPU 这样的用法,您可能会成功使用 How to get the CPU Usage in C#? (Windows)。
对于Linux上的CPU,命令行解析结果:https://phoenixnap.com/kb/check-cpu-usage-load-linux。简而言之:
sudo apt install sysstat
mpstat 1
GC class 具有获取 C# 运行时使用的内存的方法。对于系统内存,这里有一些资源:
Windows: How do you get total amount of RAM the computer has?
Linux: 运行 free -m
并使用 Process
class.
其他可能对 Linux 有帮助的链接:
- https://raspberrypi.stackexchange.com/questions/117094/raspberry-pi-with-linux-and-c-on-it-how-to-read-hardware-sensor-info
- How to identify the hardware details of a Linux/Mac machine using .Net Core