製品の複数のマイナーバージョンをインストールできるようにWiXプロジェクトを構成する必要があります。IE:1.0、1.1、1.3をインストールできます。1.2をインストールしようとすると機能しますが、1.1でインストールしようとすると、先に進む前に以前の1.1インストールがアンインストールされます。
これまでのところ、これは私のUpgrade
タグにあるものです:
<Upgrade Id="$(var.UpgradeCode)">
<UpgradeVersion Minimum="$(var.MajorMinorVersion)" IncludeMinimum="yes"
Maximum="$(var.VersionNumber)" IncludeMaximum="no" Property="OLDERMINORFOUND"/>
</Upgrade>
UpgradeCode
は私のwxiファイルで定義されたGUIDでMajorMinorVersion
あり、と同じですVersionNumber
が、ビルドは0(バージョンが1.1.12の場合は1.1.0)です。
私には2つの可能性があると思います:
別のUpgradeVersion
タグを作成するか、現在のタグを更新して、次のマイナーバージョンで最大になるようにし、検索から除外します。
<UpgradeVersion Minimum="$(var.MajorMinorVersion)" IncludeMinimum="yes"
Maximum="$(var.NextMinorVersion)" IncludeMaximum="no"/>
カスタムアクションを使用してNextMinorVersion
何らかの方法で設定します。多分代わりにプロパティを使用します。
または、マイナーバージョンが変更されるたびにUpgradeCodeを手動で変更します。または、GUIDの最初の数文字はバージョンを表し、残りは一意ですか?私はそれが良い考えだとは思えませんが...
それで、基本的に、すべてのバージョンに対して1つのセットアッププロジェクトだけを持つことを期待して、これを達成するための最良の方法は何でしょうか?
編集
タグを調べましたがMajorUpgrade
、同時に多くのマイナーバージョンを持つように設定することはできないと思います。これに関するどんな光でもありがたいです。
また、関数を使用してバージョン番号を操作するプリプロセッサ拡張機能を作成することも検討したので、次のことができます。
<Upgrade Id="$(var.UpgradeCode)">
<UpgradeVersion Property="OLDERMINORFOUND"
Minimum="$(var.MajorMinorVersion)" IncludeMinimum="yes"
Maximum="$(myprefix.NextMinor($(var.VersionNumber)))" IncludeMaximum="no"/>
</Upgrade>
詳細については私の答えを参照してください。