【问题标题】:System.Management.ManagementClass Replacement Core ClrSystem.Management.ManagementClass 替换核心 Clr
【发布时间】:2015-12-02 19:29:10
【问题描述】:

我有一些驻留在 asp.net 应用程序中的代码, 它使用 System.Management.ManagementClass 来查询各种 有关当前存在的硬件的详细信息。

我们查看 CPU、基板和 BIOS 详细信息,并将它们用于 各种东西,即识别

所以现在跨平台与核心 clr 和 asp.net 5 我们需要开始移植我们的代码。

然后问题变成了如何实现这一点,因为上面提到的类不存在(根据我的搜索)。更具体地说,我们正在寻找一种现在可以跨平台工作的基于硬件的方法,并为我们提供了一种基于当前硬件生成密钥的方法。因此,该密钥唯一会更改的情况是设备上的硬件是否被更换。

【问题讨论】:

    标签: c# asp.net-core .net-core coreclr


    【解决方案1】:

    命名空间System.Management 可能永远不会移植到 .NET Core,尤其是跨平台。 System.Management 是 WMI 的包装器,它又是一个与 Windows 平台非常绑定的 Windows 库。据我所知,.NET Core 目前没有任何可用的基于硬件的 ID。

    如何实现跨平台:构建一个 NuGet 包,其中托管同一合约的两个实现。一个基于 net451,利用您现有的 WMI 代码,另一个基于 Linux 方法读取一些连续出版物。在那里做一些研究。 /proc 文件系统应该有一些,但你也可以 P/Invoke 到一些 linux 库中。

    【讨论】:

    • 是的,你是对的。它需要安装 .net 框架
    • Nuget 包 nuget.org/packages/System.Management 怎么样?
    • 好吧,世界在 4 年内发生了变化 ;) ...我没有检查过,但可能 .NET Core 2+ / .NET 5 实际上在 WINDOWS 上运行这个包。不是Linux。它依赖于注册表。我还没有检查,但如果你这样做,请告诉我们结果;)。但是,总体而言,在您的管理/配置任务中关注 PowerShell。这就是未来。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-09
    • 1970-01-01
    • 2021-10-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多