Visual Studio 2022 + Crystal Reports for Visual Studio(SP34)の環境でデバッグできるようにしたい

実現したいこと

前提

Visual Studio 2022 CommunityとCrystal Reports for Visual Basic(SP34)を用いて、
帳票出力に取り組もうとしています。
デバッグしようとしたところ、以下のエラーが発生しました。

発生している問題・エラーメッセージ

System.TypeInitializationException
HResult=0x80131534
Message='CrystalDecisions.CrystalReports.Engine.ReportDocument' のタイプ初期化子が例外をスローしました。
Source=CrystalDecisions.CrystalReports.Engine
スタック トレース:
at CrystalDecisions.CrystalReports.Engine.ReportDocument..ctor()
at CrystalDecisions.CrystalReports.Engine.ReportClass..ctor()
at CrystalReportsSample.SalesSlip..ctor() in D:\13_TamaLabo\Visual Studio Projects\CrystalReportsSample\SalesSlip.cs:line 21
at CrystalReportsSample.Form1.InitializeComponent() in D:\13_TamaLabo\Visual Studio Projects\CrystalReportsSample\Form1.Designer.cs:line 32
at CrystalReportsSample.Form1..ctor() in D:\13_TamaLabo\Visual Studio Projects\CrystalReportsSample\Form1.cs:line 18
at CrystalReportsSample.Program.Main() in D:\13_TamaLabo\Visual Studio Projects\CrystalReportsSample\Program.cs:line 19

この例外は、最初にこの呼び出し履歴 でスローされました

内部例外 1:
FileNotFoundException: ファイルまたはアセンブリ 'CrystalDecisions.ReportAppServer.CommLayer, Version=13.0.4000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304'、またはその依存関係の 1 つが読み込めませんでした。指定されたファイルが見つかりません。

該当のソースコード

//------------------------------------------------------------------------------ // <auto-generated> // このコードはツールによって生成されました。 // ランタイム バージョン:4.0.30319.42000 // // このファイルへの変更は、以下の状況下で不正な動作の原因になったり、 // コードが再生成されるときに損失したりします。 // </auto-generated> //------------------------------------------------------------------------------ namespace CrystalReportsSample { using System; using System.ComponentModel; using CrystalDecisions.Shared; using CrystalDecisions.ReportSource; using CrystalDecisions.CrystalReports.Engine; public class SalesSlip : ReportClass { public SalesSlip() { ← ここでエラーが発生 } public override string ResourceName { get { return "SalesSlip.rpt"; } set { // Do nothing } } public override bool NewGenerator { get { return true; } set { // Do nothing } } public override string FullResourceName { get { return "CrystalReportsSample.SalesSlip.rpt"; } set { // Do nothing } } [Browsable(false)] [DesignerSerializationVisibilityAttribute(System.ComponentModel.DesignerSerializationVisibility.Hidden)] public CrystalDecisions.CrystalReports.Engine.Section Section1 { get { return this.ReportDefinition.Sections[0]; } } [Browsable(false)] [DesignerSerializationVisibilityAttribute(System.ComponentModel.DesignerSerializationVisibility.Hidden)] public CrystalDecisions.CrystalReports.Engine.Section Section2 { get { return this.ReportDefinition.Sections[1]; } } [Browsable(false)] [DesignerSerializationVisibilityAttribute(System.ComponentModel.DesignerSerializationVisibility.Hidden)] public CrystalDecisions.CrystalReports.Engine.Section GroupHeaderSection1 { get { return this.ReportDefinition.Sections[2]; } } [Browsable(false)] [DesignerSerializationVisibilityAttribute(System.ComponentModel.DesignerSerializationVisibility.Hidden)] public CrystalDecisions.CrystalReports.Engine.Section GroupHeaderSection2 { get { return this.ReportDefinition.Sections[3]; } } [Browsable(false)] [DesignerSerializationVisibilityAttribute(System.ComponentModel.DesignerSerializationVisibility.Hidden)] public CrystalDecisions.CrystalReports.Engine.Section Section3 { get { return this.ReportDefinition.Sections[4]; } } [Browsable(false)] [DesignerSerializationVisibilityAttribute(System.ComponentModel.DesignerSerializationVisibility.Hidden)] public CrystalDecisions.CrystalReports.Engine.Section GroupFooterSection1 { get { return this.ReportDefinition.Sections[5]; } } [Browsable(false)] [DesignerSerializationVisibilityAttribute(System.ComponentModel.DesignerSerializationVisibility.Hidden)] public CrystalDecisions.CrystalReports.Engine.Section Section4 { get { return this.ReportDefinition.Sections[6]; } } [Browsable(false)] [DesignerSerializationVisibilityAttribute(System.ComponentModel.DesignerSerializationVisibility.Hidden)] public CrystalDecisions.CrystalReports.Engine.Section Section5 { get { return this.ReportDefinition.Sections[7]; } } } [System.Drawing.ToolboxBitmapAttribute(typeof(CrystalDecisions.Shared.ExportOptions), "report.bmp")] public class CachedSalesSlip : Component, ICachedReport { public CachedSalesSlip() { } [Browsable(false)] [DesignerSerializationVisibilityAttribute(System.ComponentModel.DesignerSerializationVisibility.Hidden)] public virtual bool IsCacheable { get { return true; } set { // } } [Browsable(false)] [DesignerSerializationVisibilityAttribute(System.ComponentModel.DesignerSerializationVisibility.Hidden)] public virtual bool ShareDBLogonInfo { get { return false; } set { // } } [Browsable(false)] [DesignerSerializationVisibilityAttribute(System.ComponentModel.DesignerSerializationVisibility.Hidden)] public virtual System.TimeSpan CacheTimeOut { get { return CachedReportConstants.DEFAULT_TIMEOUT; } set { // } } public virtual CrystalDecisions.CrystalReports.Engine.ReportDocument CreateReport() { SalesSlip rpt = new SalesSlip(); rpt.Site = this.Site; return rpt; } public virtual string GetCustomizedCacheKey(RequestContext request) { String key = null; // // The following is the code used to generate the default // // cache key for caching report jobs in the ASP.NET Cache. // // Feel free to modify this code to suit your needs. // // Returning key == null causes the default cache key to // // be generated. // // key = RequestContext.BuildCompleteCacheKey( // request, // null, // sReportFilename // this.GetType(), // this.ShareDBLogonInfo ); return key; } } }

試したこと

・CrystalDecisions.ReportAppServer.CommLayerを「参照の追加」より追加

補足情報(FW/ツールのバージョンなど)

・フォームにボタンを1つ配置し、.rptファイル(SalesSlip.rpt)を1つ関連付けています。
・ボタンをクリックすると、帳票を出力する構成です。
・言語:C#.NET(.NET Framework 4.6.2)

コメントを投稿

0 コメント