我有一个正在开发的应用程序。它是使用 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 位应用程序中读取的数据库中。想法?