インストールにバンドルされたMSIの実行
-
23-10-2019 - |
質問
Crystal Report用のインストーラーファイル(crredist2008_x86.msi)も含むMSIを作成しました。メインインストーラーとともにCrystal Report MSIを実行したいと思います。私は理解しています、私は何らかのカスタムアクションを使用する必要がありますが、これを進めるための正確な方法についてはわかりません。
おそらくステップはそうでしょう
i)メインのインストールの終了を許可するii)コマンドmsiexecを使用して「crredist2008_x86.msi」を実行します[これを行う方法がわかりません
誰かがこれを達成する方法について私にガイダンスを提供できますか?
解決
これには2つのアプローチがあります。
クリスタルレポートインストーラーを前提条件として追加します。ほとんどのセットアップオーサリングツールはこれをサポートしており、推奨される方法です。
2番目のインストーラーを起動するカスタムアクションを作成します。 Windowsインストーラーには、他のMSIを通常のファイルとして起動するための事前定義されたカスタムアクションはありませんが、ShellexeCuteを使用してMSIファイルを起動するカスタムEXEを作成してみてください。
インストール終了時に別のMSIインストーラーを実行するには、アクションをインストールしてからスケジュールし、で実行する必要があります。 msidbcustomactiontypeasync と msidbcustomactiontypecontinue フラグ:http://msdn.microsoft.com/en-us/library/aa368071(vs.85).aspx
他のヒント
あなたの最善の策はブートストラッパーを使用することです(無料について良いことを聞いたことがあります dotnetinstaller, 、または利用可能な商業的な代替品があります)
次に、Bootstrapperを構成して、次のことを行います。
- クリスタルレポートを確認し、存在しない場合はインストールしてください
- 他の依存関係を確認し、存在しない場合はインストールしようとします
- セットアップファイルを実行します(これらのチェックを再度実行し、依存関係がまだインストールされていない場合は中止)
たとえば、私が使用するブートストラッパーで
- Windowsインストーラー3.1
- .NET 2.0+
それらが存在しない場合、それらはネットからダウンロードされ、自動的にインストールされます。これはすべて、メインインストールが開始される前に発生します。
それが役立つことを願っています:)