まず、どのような問題が発生したのか、以下をご覧下さい。
クリスタルレポート ReportCodeGeneratorでこける
http://forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=883458&SiteID=7
trapemiya
MVP
投稿数746
クリスタルレポート ReportCodeGeneratorでこける
先日から悩んでいるのですが、クリスタルレポートのカスタムツールを実行すると、以下のメッセージが出てこけてしまいます。この現象が起きているパソコンでは一度も成功していません。
環境は、以下の通りです。
Visual Studio 2005 Team Edition for Developers
Crystal Reports for Visual Studio 2005
同じ環境で他のパソコンでは正常にカスタムツールが終了します。(問題なくレポートのクラスが自動生成されます。)
「エラー 1 カスタム ツール エラー: "コード ジェネレータ 'ReportCodeGenerator' は失敗しました。例外スタック = System.Exception: レポートのロードに失敗しました。 ---> System.Runtime.InteropServices.COMException (0x80004005): 指定されたパスが見つかりません。
場所 CrystalDecisions.ReportAppServer.ClientDoc.ReportClientDocumentClass.Open(Object& DocumentPath, Int32 Options)
場所 CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.Open(Object& DocumentPath, Int32 Options)
場所 CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.EnsureDocumentIsOpened()
--- 内部例外スタック トレースの終わり ---
場所 CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.EnsureDocumentIsOpened()
場所 CrystalDecisions.CrystalReports.Engine.ReportDocument.Load(String filename, OpenReportMethod openMethod, Int16 parentJob)
場所 CrystalDecisions.CrystalReports.Engine.ReportDocument.Load(String filename)
場所 CrystalDecisions.VSDesigner.CodeGen.ReportClassWriter..ctor(String filePath)
場所 CrystalDecisions.VSDesigner.CodeGen.ReportCodeGenerator.GenerateCode(String inputFileName, String inputFileContent)" E:\Documents and Settings\MIYA\My Documents\Visual Studio\Projects\CrystalReportsApplication1\CrystalReportsApplication1\CrystalReport1.rpt 1 1 CrystalReportsApplication1
」
リポートから型を作って、C#のソースを作ろうとしているのですが、上記エラーでこけてしまうため、自動生成されたC#のソースファイルは空の状態です。ちなみにVBでも同じ現象でした。
VS2005の再インストールは行ってみたのですが、現象は変わりません。インストールログにもこれといった情報は出ていません。アセンブリが足りないのかとも思ったのですが、Business Objects社のサポートの方の情報と比較すると、全て正しいバージョンでインストールされているようです。
どなたか同じような体験をされて、解決された方はいらっしゃいませんでしょうか?
もちろん、Create Caseをして、Business Objects社のサポートにも問い合わせました。で、正常にインストールされていないか、環境固有の問題であると考えられるということでした。私もその通りで、何かアセンブリがきちんと登録されていないんだろうと思い、Visual Studio 2005や、Crystal Reportsの再インストールを何度か試みました。しかし、一向に直る気配がありません。Business Objects社のサポートの方から提供していただいた必要なアセンブリの確認をしても、全て揃っています。
おかしい。何かがおかしい。
そこから戦いが始まりました。ネットを徹底的に漁りました。
しかし、同じような現象で悩んでいる方の書き込みは見つかるものの、肝心の解決策が載っていません。トホホホ Orz
というわけで、前述のMSDNフォーラムへの書き込みへとつながっていったわけです。
で、ようやく本日、有益な情報を見つけ、前面解決に至りました。長かった・・・。結局、Cドライブ以外にインストールしたのが間違いでした。私はEドライブにインストールしていたのでした。(というか、Cドライブ以外にもインストールするよね。)
解決策
Err Msg: "Load Report Failed" when running a .NET Windows application
http://technicalsupport.businessobjects.com/KanisaSupportSite/search.do;jsessionid=BEBAFF159A2B2DE33E50F452824BDF34?cmd=displayKC&docType=kc&externalId=c2016508&sliceId=&dialogID=360384&stateId=1%200%20356275
に載っている通りのことをすればOKです。
私が使用しているVS2005では、上記のKBと若干クリスタルレポートのバージョンが違いましたので、以下のようにしました。
1.レジストリで、
HKEY_LOCAL_MACHINE\SOFTWARE\Crystal Decisions\10.2\Report Application Server\InprocServer\LocalConnectionMgr を開く。
2.ConnectionDirectoryPathの値を、E:\Program Files\Common Files\Business Objects\2.7\Bin とする。
3.同じく LocalConnectionMgr において、新規に、ReportDirectoryPathを文字列値として作成する。この値を、上記と同じ E:\Program Files\Common Files\Business Objects\2.7\Bin とする。
以上で、ReportCodeGeneratorはこけなくなります。