web-dev-qa-db-ja.com

VCProjectEngineObject(Microsoft.VisualStudio.VCProjectEngine.dll)の初期化中にエラー80040154(クラスが登録されていない例外)

Visual C++プロジェクトをメイクファイルに変換するために this ツールを実行しようとしています。プロジェクトを変換しようとしているプロジェクトはVS2008で記述されているため、バージョン9のMicrosoft.VisualStudio.VCProjectEngine.dllへの参照を使用しています。

次の行で失敗します。

VCProjectEngine vcprojEngine = new VCProjectEngineObject();

次の例外があります。

次のエラーのため、CLSID {D19A00C4-A7F9-4E14-A5E1-D060B7EB57F3}のコンポーネントのCOMクラスファクトリを取得できませんでした:80040154クラスが登録されていません(HRESULTからの例外:0x80040154(REGDB_E_CLASSNOTREG))。

VCProjectEngine.dllをregsvr32で登録しようとすると、エントリポイントDllRegisterServerが見つからないというエラーが表示されました。

何か案が??

前もって感謝します。

33
rkellerm

これが失敗する正当な理由、特にregsvr32ステップは多くありません。そのDLLでdumpbin/exportsを実行します。 DllRegisterServerが表示されない場合、インストールが破損しています。副作用が増えるはずです。C/ C++プロジェクトをこれ以上構築できなくなります。

64ビットのオペレーティングシステムでこれを実行している標準的な障害モードが1つあります。これは32ビットのアンマネージコードであり、実際には 'class not registered'例外が発生します。プロジェクト+プロパティ、ビルドタブで、プラットフォームターゲットをx86に変更します。

65
Hans Passant