trapemiyaの日記

hatenablogが新しくなったんで新規一転また2019年1月からちょこちょこ書いてます。C#中心のプログラミングに関するお話です。

Crystarl Reportsのバージョンアップでハマる・・・

Visual Studio 2019で久しぶりにCrystal Reportsをいじると、何やら動作がおかしい。コンテキストメニューが2、3回ほどは普通に出るが、そのうち出なくなる。で、そのうちにVisual Studioの操作自体も固まったようになる。完全に固まってはいないのだけれど、ものすごくものすごく動作が遅い感じになる。
調べてみると、ここに出ておりました。


New In SP26 Release - read the above info for SP 21 if upgrading from lower version
1.Addressed customer Incidents
2.Windows Server 2019 and Win10 1903
3..NET Framework 4.8
4.Data source updates (Excel/Access 2019, HANA 2.0 SP04, Oracle 19c)
5.Browser updates (Latest Chrome, Firefox ESR 68)
6.Security updates

 SP26で、Win 10 1908と.NET Framework 4.8 に対応したのね。

で、早速以下からダウンロードしてインストール。

SAP Crystal Reports, version for Visual Studio

https://www.sap.com/japan/products/crystal-visual-studio.html

 インストールの最後にランタイムも入れるか?と聞かれるが、開発マシンとして使い、配布したアプリケーションを動作させないのであれば入れる必要はない。

で、インストールが無事に終わり、Crystal Reportsの編集がVisual Studio 2019上でサクサク動くことを確認。めでたし、めでたし。

だがしかし、コンパイルしてアプリを実行し、クリスタルレポートの帳票を表示しようとすると

Could not load assembly version 13.0.3500.0

 と出るありさま。

で、Crystal Reports関係の参照設定を確認すると、13.0.35のまま。なんで?
仕方がないので、これらを削除し、SP26の13.0.40を参照設定した。ソリューション内の他のプロジェクトを確認すると、13.0.40になっていた。

だがしかし、ここでコンパイルが通らない。

結局、他のプロジェクトも一度、13.0.40を削除し、もう一度同じものを参照設定したところ、無事に認識され、コンパイルできるようになった。

クリスタルレポートの帳票もバッチリ表示された。

 

まとめると、SP26を当てた後は、全てのプロジェクトでたとえ13.0.40のバージョンが参照設定されていたとしても、再度、参照設定をし直した方が良さそうである。

正しい手順はこれだけである!

先ほど紹介したページにも以下のように書かれている。

Note the following changes in SP 26:

  1. .Net Framework 3.5.1 is no longer supported, we’d recommend to use .Net Framework 4.5.2.
  2. Assembly version of CR .Net and RAS .Net upgrade from 13.0.3500.0 to 13.0.4000.0, user should load their project in VS to migrate the references.

 user should load their project in VS to migrate the references.

要は参照設定し直してねってこと

 

さて、注意です。実は私はこの過程で大きなミスを一つやらかしております。

ランタイムをインストールしてしまったのです。

開発マシンにmsi版のランタイムを入れてはダメです!

f:id:trapemiya:20200219021041j:plain

開発マシンにMSI版のランタイムは入れはダメ

 

msiのランタイムをインストールすると、

CrystalDecisions.CrystalReports.Engine.DataSourceException: Error in File temp_・・・.rpt

 というエラーが出るので注意ね!

速攻、msi版のランタイムはアンインストールして下さい。

(参考)

CR13 SP26 Visual Studio Error CrystalReports.Engine.DataSourceException

https://answers.sap.com/questions/12928107/cr13-sp26-visual-studio-error-crystalreportsengine.html

 

ただ、アンインストールするとボロボロになって、コンパイルする通らなくなります。

で、最後にDeveloper for Visual Studio を再インストールして下さい。

これで復旧です!

(おまけ)

参照設定は以下の5つぐらいしとけばとりあえず良し

f:id:trapemiya:20200219023746j:plain

Crystal Reportsの参照設定

CrystalDecisions.CrystalReports.Engine

CrystalDecisions.CrystalReports.ReportSource

CrystalDecisions.CrystalReports.Shared

SAPBusinessObjects.WPF.Viewer

SAPBusinessObjects.WPF.ViewerShared

Windowsフォームだと、CrystalDecisions.Windows.Formsも要ったかな・・・?

 

#クリスタルレポート