web-dev-qa-db-ja.com

HRESULT:0x80040154(REGDB_E_CLASSNOTREG))

GISアプリケーションを構築していますが、コードを実行するたびにこのエラーが発生します

System.Runtime.InteropServices.COMExceptionが処理されませんでしたCLSID {FBF5715D-A05D-11D4-A64C-0008C711C8C1}のコンポーネントのCOMクラスファクトリの取得は、次のエラーのために失敗しました:80040154クラスが登録されていません(HRESULTからの例外:0x80040154(REGDB_E_CLASSNOTREG)) 。

また、プロジェクトプロパティでは、COM相互運用機能の登録オプションが無効になっています。

28
user362130

これは、64 bit構成を使用してコードをビルドする際の問題でもある可能性があります。この問題を解決できるビルドプラットフォームとしてx86を選択してみてください。これを行うには、ソリューションを右クリックしてConfiguration Managerを選択します。そこから、32ビットの.dllを使用してプロジェクトのPlatformx86に変更できます。

メッセージを見るだけで、参照する1つ以上のコンポーネント、または1つ以上の依存関係が正しく登録されていないように聞こえます。

どのコンポーネントかがわかっている場合は、regsvr32.exeを使用して登録し、コマンドプロンプトを開いて、コンポーネントがあるディレクトリに移動し、regsvr32 filename.dll(dllであると仮定)、動作する場合は、コードを再度実行してください。そうでない場合は、エラーとともにここに戻ってください。

どのコンポーネントかわからない場合は、GISソフトウェアを再インストール/修復してみてください(使用しようとしているコンポーネントを含むGISソフトウェアがインストールされていると仮定します)。

17
Hans Olsson