- PR -

CrystalReportsを必須コンポーネントとしてインストーラー作成

1
投稿者投稿内容
ミカン
会議室デビュー日: 2008/03/31
投稿数: 4
投稿日時: 2008-03-31 21:28
はじめて質問させて頂きます。
現在、Visual Basic2005 .NETでWindowsアプリケーションとそのインストーラーをはじめて開発しております。

開発に「Crystal Reports]T Release 2」を使用した為、作成したSetup.exeを起動した時、「Crystal Reports]T Release 2」がインストールするPCに無い場合はCrystal Reportsをインストールするようにしました。

しかし、既にPCに「Crystal Reports]T Release 2」がインストールされているにも関わらず、Setup.exeを起動した時に「Crystal Reports]T Release 2」をインストールするダイアログが必ず表示されてしまいます。

PCに「Crystal Reports]T Release 2」がインストールされている場合は、作成したインストーラー(Setup.exe)を起動してもCrystal Reportsをインストールしないようにしたいのですが、どうすれば良いでしょうか?


CrystalReportsは必須コンポーネントとして、以下の様にインストーラーを作成しました。

@インストーラーのプロパティページを開く
Aプロパティページの「必須コンポーネント」ボタンを押下
Bインストールする必須コンポーネントに「.NET Framework2.0」と「Crystal Reports]T Release 2」にチェックを入れる
C「必須コンポーネントのインストール場所」に「必須コンポーネントをコンポーネントの開発元のWebサイトからダウンロードする」を指定
Dビルドを実行してインストーラーを作成

Dの後に、SetUp.exeと同じディレクトリに「CrystalReports」フォルダが生成され、そのフォルダ内に「CrystalRedist115_x86.msi」が生成されます。
また、同じ必須コンポーネントとして設定した「.NET Framework2.0」はインストールするダイアログは表示されません。

以上です。どなたかご教授よろしくお願いします。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2008-04-01 11:29
引用:

ミカンさんの書き込み (2008-03-31 21:28) より:

開発に「Crystal Reports]T Release 2」を使用した為、作成したSetup.exeを起動した時、「Crystal Reports]T Release 2」がインストールするPCに無い場合はCrystal Reportsをインストールするようにしました。


配布先に Crystal Reports XI Release 2 自体をインストールするということでしょうか? 動作に必要なものではないですし、いろいろまずいと思いますが。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
ミカン
会議室デビュー日: 2008/03/31
投稿数: 4
投稿日時: 2008-04-01 20:42
回答ありがとうございます。

回答の通り、配布するPCにCrystal Reports]T Release 2をインストールしようとしています。

いろいろまずいというのは、どういうことでしょうか?
Crystal Reports XI Release 2は再配布出来ないということでしょうか?
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2008-04-02 10:50
引用:

ミカンさんの書き込み (2008-04-01 20:42) より:

回答の通り、配布するPCにCrystal Reports]T Release 2をインストールしようとしています。
いろいろまずいというのは、どういうことでしょうか?
Crystal Reports XI Release 2は再配布出来ないということでしょうか?


件名がややこしいので確認します。 望んでいるのは以下のどちらでしょうか?
  • Crystal Reports の動作に必要な必須コンポーネント (ランタイム) およびマージ モジュールを配布したい
  • Crystal Reports XI Release 2 というプロダクト自体を '必須コンポーネント' として配布したい
件名と本文を見る限り、私には後者のように見えます。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
ミカン
会議室デビュー日: 2008/03/31
投稿数: 4
投稿日時: 2008-04-02 16:54
回答ありがとうございます。

望んでいることは、「Crystal Reports XI Release 2 というプロダクト自体を '必須コンポーネント' として配布したい」です。

しかし、目的はCrystal Reports がインストールされていないPCでも、Crystal Reports が動作出来るようにすることであり、その為にCrystal Reports XI Release 2プロダクトを必須コンポーネントとして配布するという方法を行っています。

実は一度、Crystal Reports の動作に必要なマージモジュール「CrystalReports11_5_NET_2005.msm」と「CrystalReports11_5_maps.msm」を配置プロジェクトに追加して、インストーラーを作成しようとしたのですが、ビルドした時に以下の警告が出力され、数分以上経ってもビルドが終了しませんでした。

※実際には300行以上出力されたので、一部を抜粋
警告: 複数のオブジェクトのターゲットの場所が同じです。('[dcpimages]\error.gif')
警告: 複数のオブジェクトのターゲットの場所が同じです。('[dcpimages]\error.gif')
警告: 複数のオブジェクトのターゲットの場所が同じです。('[toolbar]\prevresults_over.gif')
警告: 複数のオブジェクトのターゲットの場所が同じです。('[toolbar]\prevresults_over.gif')
警告: 複数のオブジェクトのターゲットの場所が同じです。('[dcpjs]\promptengine_strings_ko.js')
警告: 複数のオブジェクトのターゲットの場所が同じです。('[dcpjs]\promptengine_strings_ko.js')
警告: 複数のオブジェクトのターゲットの場所が同じです。('[toolbar]\tab_right_sel.gif')

その為、他のやり方を調査した結果、Crystal Reports XI Release 2というプロダクト自体を必須コンポーネントとして配布するという方法を発見した為、このやり方を使用しています。
ただし、このやり方だと最初に質問したように「既にPCにCrystal Reportsがインストールされていても、Setup.exeを起動した時にCrystal Reports]T Release 2をインストールしようとしてしまう」という現象が発生してしまうのです。

出来れば、この現象を解決できる方法を教えて頂きたいのですが、やはりCrystal Reports の動作に必要なマージモジュール、必須コンポーネントを配布するというやり方に変えたほうが良いのでしょうか?
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2008-04-02 18:01
引用:

ミカンさんの書き込み (2008-04-02 16:54) より:

望んでいることは、「Crystal Reports XI Release 2 というプロダクト自体を '必須コンポーネント' として配布したい」です。

しかし、目的はCrystal Reports がインストールされていないPCでも、Crystal Reports が動作出来るようにすることであり、その為にCrystal Reports XI Release 2プロダクトを必須コンポーネントとして配布するという方法を行っています。


「目的」 の問題ではないような気がします。 意思がどうであれ 「機能」 が入ってしまうのですから。
http://japan.businessobjects.com/products/reporting/crystalreports/licensing/details.asp

デザインの使用条件として指定ユーザーライセンス分購入しなさいと書いてあります。 文面からして無制限なのはランタイム ライセンスだけのように読み取れます。(普通に考えて常識的なライセンス形態)

本当のところは販売元である BusinessObjects 社に聞かないとわからないです。 とまあ、私が言いたいことは 「以上の理由でこの質問にはお答えできそうにありません」 ということです。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
ミカン
会議室デビュー日: 2008/03/31
投稿数: 4
投稿日時: 2008-04-03 13:43
回答ありがとうございます。

じゃんぬねっとさんの回答からいろいろと考えましたが、作成したWindowsアプリケーションが配布するPCで動作できればそれで良いので、「Crystal Reports XI Release 2 」そのものを必須コンポーネントとしてインストールさせるということは、やり過ぎかもしれませんね。

動作に必要なランタイムを配布する方法について詳しく調べてみようと思います。

じゃんぬねっとさん、貴重なご意見ありがとうございました。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2008-04-04 10:13
引用:

ミカンさんの書き込み (2008-04-03 13:43) より:

じゃんぬねっとさんの回答からいろいろと考えましたが、作成したWindowsアプリケーションが配布するPCで動作できればそれで良いので、「Crystal Reports XI Release 2 」そのものを必須コンポーネントとしてインストールさせるということは、やり過ぎかもしれませんね。

動作に必要なランタイムを配布する方法について詳しく調べてみようと思います。


マージ モジュールを含めて配布するだけで良いです。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
1

スキルアップ/キャリアアップ(JOB@IT)