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