開発中のアプリがあります。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 ビット アプリで読み取るデータベースに結果をダンプすることです。考え?