0

最近,我需要在 windows 平台的 mono 上运行我的 winforms 应用程序,但是我正在使用 WMI 在我的原始代码中获取 MAC 地址和 CPU ID,切换到 Windows 的 Mono,它不起作用。我发现 Mono 中没有实现“System.Management.dll”API。

我该怎么办?如何在没有 WMI 的情况下获取 CPU ID、MAC 地址、硬盘序列号和主板序列号?

4

1 回答 1

1

我不希望 Mono 会实现可以与 WMI 通信的代码,因为这是一个特定于平台的 API。如果您的目标是在 Windows 上运行您的软件,为什么不直接使用 Microsoft .Net 运行时?您必须使用 Mono 是否有特定的原因?

最简单的答案是尽可能使用 Microsoft 运行时,因为您正在编写非平台独立的代码。

如果您真的必须使用单声道运行时并且不能使用 System.Management.dll 的 Microsoft 实现,我认为您可以通过使用互操作服务获得您想要的。Mono 可以与本地库http://www.mono-project.com/Interop_with_Native_Libraries交互。WMI 也可以通过 COM 接口使用,Mono 也可以这样做,因此您可能需要沿着这条路线走。http://www.mono-project.com/COM

Interop 和 COM 都不会像使用 System.Management.dll 那样简单,但它是一种替代方法。

于 2010-05-21T12:55:05.163 回答