2016-08-30 6 views
0

私たちのインストーラパッケージは、常にインストールされているバージョンに触れることなく、フルバージョンのパッケージとして新しいバージョンのソフトウェアを展開します。ユーザーは、私たちのソフトウェアのすべてのバージョンを並べて実行することができます。アップグレードまたはフルインストールのいずれかをユーザーに選択させる方法を教えてください。

しかし、他のユーザーは、既存のバージョンをアップグレードすることを好むであろうが、古いバージョンはもう不要であり、バインドされていないため、このオプションを使用する必要があります。これらの規制。

このようなインストールパッケージを作成するにはどうすればいいですか?

私は個人的にこのようなインストーラはまだ見ていないことを認めなければなりません。ベンダーは通常、1つのルートを選択してそれに固執しているようです。

答えて

1

これを行うには、2回以上の別個のインストールが必要です。それらの間の基本的な違いは、アップグレードテーブル(既にインストールされている製品のメジャーアップグレードを実行し、プログラム&の機能に置き換える)を持ち、もう1つはアップグレードテーブルを持たないということです。製品がサイドバイサイドシナリオでインストールされています。どちらの場合も、インストールされているすべての製品とは異なるProductCodeがあります。

私はあなたがこれを他の方法で行うことはできないと考えているので、ブートストラップが必要です。ブートストラッパーは、ユーザーに何をすべきかを尋ね、インストールの選択肢を起動します。 2つのMSIファイルは必要ありません。アップグレードテーブルのエントリを削除(または追加)するトランスフォーム(.mstファイル)を持つ単一のMSIを持つことができます。 MSIのOrcaをUpgradeテーブルのエントリとともに使用し、エントリを削除してトランスフォームを作成することができます。アップグレードの場合は、MSIファイルを通常どおり起動してください。 TRANSFORMS = [アップグレードテーブルを削除するmstファイル]を含むコマンドラインでMSIをサイドバイサイドで起動します。

もちろん、2つの別々のMSIファイルでこれを行うことはできますが、すでに複数のバージョンのMSIファイルを使用しているように見えます。

もっと簡単な方法があります。古い製品のアンインストールを実行するのはRemoveExistingProductsアクションです。ユーザーが横並びのインストールを望むことを(たとえばプロパティ値を介して)検出する方法がある場合、プロパティでRemoveExistingProductsアクションを条件付きにすることができます。

関連する問題