6

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はスタートアッププロジェクトで使用されます。

4

5 に答える 5

14

X86/x64の問題である可能性があります。

86プラットフォームをターゲットにするようにアプリをコンパイルしてみてください。

于 2013-03-18T10:15:21.363 に答える
3

この問題は私を2日間とらえ、非常によく似た答えでいたるところにありましたが、結局私にとっては2つありました。少なくとも1日は誰かを救うことを願ってここに追加します。

多くの投稿がこれに言及しています。IISに移動->アプリケーションプール->アプリケーションプールの右ボタンをクリック->詳細設定に移動->32ビットアプリケーションを有効にする= True

私の場合、64ビットマシンでビルドしてデプロイしていたので、TrueFalseに設定して実行したことに注意してください。繰り返しになりますが、十分に単純ですが、私が関係しているとは思わなかったので、調整を行った後、私の心はそれに空白でした。

もう1つの重要な点は、CRRuntime_xx.xxMSIがDeploymentサーバーにロードされていることを確認することです。

一日の終わりに素晴らしい情報を提供してくれた皆さん、ありがとうございました。

于 2018-01-10T21:28:02.537 に答える
2

IISに移動->アプリケーションプール->アプリケーションプールの右ボタンをクリック->詳細設定に移動->32ビットアプリケーションを有効にする=True

于 2017-01-29T09:42:27.230 に答える
0

CRをインストールすると、C:\ inetpub \ wwwroot \ aspnet_client \ system_web \ 4_0_30319 \ crystalreportviewers13にいくつかのファイル(JS、htmlなど)がインストールされます。このフォルダがPCに存在するかどうかを確認してください。そうでない場合は、プログラムファイルからこの場所にフォルダをコピーする必要があると思います。

于 2012-08-30T11:57:58.060 に答える
0

これらの答えは私たちを正しい場所に導きましたが、トラブルシューティングを行うまではそうではありませんでした。VisualStudio2019とIISExpressを実行しているローカル開発マシンでは32/64ビットの問題になりました。

私たちの場合、問題は、「Webサイトとプロジェクトに64ビットバージョンのIISExpressを使用する」の設定がVisualStudioの設定で有効になっていることでした。開発マシンでは32ビットバージョンのクリスタルを使用しているため、正しく機能させるには、このボックスのチェックを外す必要がありました。

ここに画像の説明を入力してください

于 2021-08-06T15:00:01.507 に答える