2016-04-26 23 views
0

とりわけWIX Toolsetを使用して、長いインストールプロセスを自動化しています。これの大部分は、顧客がインストールしたい製品のバージョンに基づいて変更される多くの前提条件をインストールすることです。WIX Toolset - ユーザー入力に基づいて前提条件をインストールする

インストールに必要なフィルタパック(.msiファイル)があり、特定の種類の製品にのみインストールする必要があります。したがって、顧客が選択したバージョンを事前に知ることができないため、バンドルに簡単にチェーンすることはできません。

4つの異なるインストーラを作成したり、バージョンに関係なくすべての前提条件をインストールしなくても、この問題を解決する方法はありますか?

ありがとうございます。

答えて

1

これを実装する最も簡単でメンテナンス可能な(imo)方法は、ブートストラップを使用して、ユーザーがインストールできる製品のバージョンごとに別々のmsiをインストールすることです。

バーンブレイクラッパーには、必要なすべての前提条件パッケージも含まれていますが、ユーザーがインストールする特定のバージョンに必要なものだけをインストールします。

あなたは実行時まで顧客がそれを望んでいるかどうかわからないので、チェーン内にフィルタパックを含めることはできませんが、それはブートストラップの全体点です。あなたのブートストラップは、実行時に情報を収集し、それに応じて変数を設定する必要があります。 MsiPackage要素のInstallConditionを使用すると、msiをインストールする必要があるかどうかを判断できます。

ブートストラッププロセスでは、検出、実行、実行、実行、実行を行います。 Plan中に、インストール中に実行され、インストールされるパッケージを特定します。ブートストラップアプリケーションには、インストールまたはアンインストールするパッケージを設定する権限があり、エンジンが決定したものをオーバーライドします。

MSIのすべてのバージョンを1つのMSIに含めることもできますし、フィーチャーグループを使って制御することもできます。これにより、製品のすべてのバージョンに対して1つのMSIを使用できるようになりますが、あなたの製品の異なるバージョンから、私はこれが後で保守性の地獄になると思います。

0

カスタムダイアログを追加することができます。カスタムダイアログには、インストールするものを選択できるチェックボックスがあります。

これらのチェックボックスは、変数を0または1に設定します。これらの変数は、installconditionで使用できます。

私はあなたが条件付きでチェックボックスを表示することもできると信じています(5がすでにインストールされている場合は、すでにインストールされている2をインストールするオプションをユーザに与えたくない場合があります)

関連する問題