1. ホーム
  2. .net

[解決済み] COMExceptionエラー80040154を修復する方法は?

2022-02-06 07:53:41

質問

動作中のC#プロジェクトを64ビットのWindows 7マシンから32ビットのXPマシンに移動すると、次のようなエラーが発生しました。

Retrieving the COM class factory for component with CLSID {681EF637-F129-4AE9-94BB-618937E3F6B6} failed due to the following error: 80040154.

681EF637-F129-4AE9-94BB-618937E3F6B6 がレジストリにないので正しくインストールされていませんが、これは以前64bitのWindows7マシンで問題になっていたのと同じIDです。

64ビットWindows 7マシンでのこのエラーの解決策が見つかりました。 こちら (プラットフォームターゲットをx86に変更)しかし、32ビットのXPマシンでは、この問題は解決されません。

に関連するDLLを見つけるにはどうすればよいですか? 681EF637-F129-4AE9-94BB-618937E3F6B6 あるいは、この例外を修復するにはどうしたらよいでしょうか?

解決方法は?

DLLを見つけるには、64ビットマシンでレジストリを開いてください。以下のキーを探します。 HKEY_CLASSES_ROOT\CLSID\{681EF637-F129-4AE9-94BB-618937E3F6B6}\InprocServer32 . このキーには、デフォルト値としてDLLのファイル名が設定されています。

64ビットマシンでプロジェクトをx86用に再コンパイルして問題を解決した場合、レジストリの通常の場所ではなく、32ビット部分を探す必要があります。これは HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Classes\CLSID\{681EF637-F129-4AE9-94BB-618937E3F6B6}\InprocServer32 .

DLLが32ビット用にビルドされている場合は、32ビットマシンで直接使用することができます。64ビット用にビルドされている場合は、ベンダーに連絡して32ビット版を入手する必要があります。

DLLを入手したら、c: \windowssystem32regsvr32.exe を実行して、DLLを登録してください。