1

Crystal Reports の自由に再配布可能なバージョンを使用する VB.Net Winforms (x86) アプリケーションがあります。私のテスト マシンではアプリケーションは問題なく動作しますが、クライアントのマシンにインストールしてアプリケーションからレポートを印刷しようとすると、エラー: 指定されたファイルが見つかりません。ファイル名:「CrystalDecisions.CrystalReports.Engine…」と表示されます。

inno-setup には、インストール中にクライアントによってインストールされた CR 再配布可能な「CRRedist2008_x86.msi」が含まれています。(「CRRedist2008_x64.msi」も実行しようとしましたが、「unsupported processor type」エラーを受け取りました)。

.NET 1/2 (VS 2002/2005) の前提条件であるマージ モジュールについて読みましたが、.NET 3.5 に関連する有用な情報が見つからず、これらのファイルがまだ必要かどうか、および必要な場合にそれらをパッケージ化してデプロイする方法を知りたいと思っています。それらは実際に必要です。

このインストールの問題を解決する方法についてのガイダンスは大歓迎です。

編集 Inno-Setup には、CR がインストールされているかどうかを確認する次のコマンドが含まれています。インストールされていない場合は、MSI が最終セットアップ フォームから起動されます。

[Run]
Filename: "{app}\CRRedist2008_x86.msi"; Description: "Crystal Reports"; Flags: nowait postinstall skipifsilent; Check: EnsureCrystalReports105Installed();
4

1 に答える 1

0

問題は、実際に MSI ファイルを実行していないことです。これは、インストーラーを実行/LOGし、結果のログ ファイルを確認することで確認できます。

これは、MSI ファイルを直接実行できないためです。MSI ファイルはプログラムではなくデータ ファイルです。

これを解決するmsiexecには、代わりに実行して、MSI ファイルをパラメーターとして渡す必要があります。例えば。

[Run]
Filename: {sys}\msiexec.exe; Parameters: "/i ""{app}\CRRedist2008_x86.msi"""; ...

msiexec で受け入れられるコマンド ライン パラメータと MSI ファイルで受け入れられるプロパティを確認して、別のことをしたいかどうかを確認する必要があります。インストールをインタラクティブではなくサイレントで実行します。

また、このコンポーネントがアプリケーションのオプションであり、インストールされていないことを適切に処理できる場合は、postinstall として実行しても問題ありません。そうでない場合は、代わりに前提条件として扱い、常に 経由でインストールする必要がありますPrepareToInstall

于 2013-04-26T02:26:38.340 に答える