VisualStudio2010を使用して.NET3.5で記述されたWPFアプリケーションがあります。このソリューションは8つのプロジェクトで構成されており、すべて.NET3.5でコンパイルされています。アプリケーションはCrystalReportを使用します。ターゲットOSはWindows7です。
最近、サードパーティのDLL依存関係があるため、スタートアッププロジェクトは.NET4.0でコンパイルされます。これらのDLLには.NET4.0が必要です。この変更とソリューションの再構築の後、CrystalReportは例外をスローします。
問題はのコンストラクターで発生しReportClass
ます。
例外のメッセージ:
'CrystalDecisions.CrystalReports.Engine.ReportDocument'の型初期化子が例外をスローしました。
InnerExceptionのメッセージ:
「CLSID{4DB2E2BB-78E6-4AEA-BEFB-FDAAB610FD1B}のコンポーネントのCOMクラスファクトリの取得は、次のエラーが原因で失敗しました:80040154クラスが登録されていません(HRESULTからの例外:0x80040154(REGDB_E_CLASSNOTREG))。」
私はこれまでCrystalReportで働いたことがありません。この問題の原因は何でしょうか?
この問題は、.NET3.5としてコンパイルした場合には発生しないことに注意してください。CrystalReportはスタートアッププロジェクトで使用されます。