0

我有一个正在开发的应用程序。它是使用 ANYCPU 配置文件编译的,因此我可以让它在 32 位和 64 位机器上运行。

我正在尝试使用 ManagementClass 和 ManagementObjectClass 检测各种系统信息

每当我尝试访问这个库时,我都会遇到异常。

我的代码片段如下所示:

string result = "";
        System.Management.ManagementClass mc =
    new System.Management.ManagementClass(wmiClass);
        System.Management.ManagementObjectCollection moc = mc.GetInstances();

我得到的例外是

Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG))

我已阅读大量文章,说明要使这项工作将配置更改为 x86,是的,它可以在独立测试中使用。然而,这是具有依赖关系的大型应用程序的一部分,我宁愿不将其专门用于 32 位。

我很难相信这个 .Net 库只能在 32 位应用程序上运行。它有一些方法可以做我想做的事情吗?

我正在尝试的一个解决方法是生成一个具有我需要的功能的 32 位包装应用程序的进程,并将结果转储到我将在 64 位应用程序中读取的数据库中。想法?

4

0 回答 0