クリスタルレポートを使った.NETアプリケーションの配布

 みなさん、結構苦労しているようですので、私も成功した例を載せておきます。
 私の例は、次の(開発)環境です。

  • Microsoft Windows XP Professional Edition SP3
  • Microsoft Visual Studio Team System 2008 Development Edition SP1
  • Crystal Reports Basic for Visual Studio 2008 (Visual Studio 2008にバンドルされているもの)

 配布の問題とは全く関係ありませんが、クリスタルレポートは「クリレポ」と略されるようで、なんかかわいい!。

セットアッププロジェクトの作成

 クリスタルレポートを使ったアプリケーションの場合、「EXEとレポート定義ファイルをコピーして終わり」とはできません。必ずセットアッププログラムを作り、インストール行為が必要になります。
 さて、そのセットアッププログラムをつくるための「プロジェクト」を作成します。
 ソリューションを選択した状態で、マウスを右クリックし、「追加」→「新しいプロジェクト」→「セットアッププロジェクト」を選択して、「OK」ボタンを押します。

必須モジュールにCRを追加

 続いて、作成したセットアッププロジェクト(ここでは「Setup」としておきます)を選択した状態で、マウスを右クリックし、プロパティーを選択します。
表示されたプロパティページダイアログにて、「必須コンポーネント」を選択します。
 以前(前のバージョン?までは、「マージモジュール」と含める必要がありましたが、Visual Studio 2008にバンドルされているクリスタルレポートからは、単に「必須コンポーネント」で、「Crystal Reports Basic for Visual Studio 2008(x86, x64)」を選択するだけでよくなったようです。

 とはいっても、この「「必須コンポーネント」で、「Crystal Reports Basic for Visual Studio 2008(x86, x64)」を選択するだけ」。

 これでうまく行くはずです

 ただ、こが、それなら他のブログにも書いてあるので、よかったのですが、私はダメでした。
 Visual Studio 2008にバンドルされているCrystal Report用のマージモジュールを見つけて、「セットアッププロジェクト」にマージモジュールを追加したり(インストール時に表示されるメッセージが英語になり、かつインストーラーが途中で止まりました)、なんども必須コンポーネントの選択を確認したり、以前インストールしたCrystal Report 2008(製品版)をアンインストールしたり、Visual Studio 2005/2008を再インストールしたりと試行錯誤。

 最終的には、Visula Studio 2008に付属する「Crystal Reports Basic for Visual Studio 2008(x86, x64)」のみをアンインストール、再インストールして、なんとかセットアッププロジェクトができました。

 それまでは、インストール途中で止まったり、一見インストールできてもCrystal Reportのランタイムがインストールされなかったりと、結構つまずきました。

レポートファイルの追加

 レポート定義ファイルを外部ファイルとして定義し、実行時にロードするように作っている場合は、ここでレポート定義ファイル(拡張子がrptというファイル)をファイル単位でセットアッププロジェクトに追加します。

ビルド

 「セットアップ」プロジェクトを選択し、マウスの右クリックで、セットアッププロジェクトをビルドします。
 なお、必須コンポーネントの指定時、「必須コンポーネントをコンポーネントの開発元の Webサイト からダウンロードする」指定の場合は、Setup.msiとsetup.exeが作成されます。
 必須コンポーネントの指定時、「アプリケーションと同じ場所から必須コンポーネントをダウンロードする」を選択すると、Setup.msiとsetup.exeに加え、次のファイルもセットアッププロジェクトのbinの下に作られます。

  • Crystal Reportのランタイムエンジン
  • .NET Framework 2.0~3.5まで一揃え
  • Windows Installer 3.1(Windows Installer自体の最新版は、もっと新しいです)

配布

 インストールするPCでsetup.exeを起動し、Crystal ReportのランタイムエンジンやWindows Installerがインストールされたのち、自身で作成したアプリケーションがインストールされます。

過去との違いを書いておくと次のとおりです。

注意?

セットアッププロジェクトに、マージモジュールは不要(英語になる)

Setup.exeが配布モジュールのインストール、Setup.msiはプログラム本体のインストール

 「過去」といっても、私自身Crystal Reportを使うのは、10年ぶりですので、ブログ等親切な人が書いた記事によれば、以前はマージモジュールが必須だったそうです。

 以上、私と同じようにハマる人もいるかもしれませんので、備忘録として残しておきます。


コメントをどうぞ。


《最終更新日》2010-03-04     《タグ・キーワード》 , , ,