2016-08-16 19 views
-1

バージョン2.4.0をインストールしました。WIX:古いバージョンを削除せずにアップグレード

<?define Version="2.4.1.0"?> 
<Product Id="*" Name="SuperProduct" Language="1033" Version="$(var.Version)" Manufacturer="MyCompany" UpgradeCode="$(var.UpgradeCode)"> 

<Upgrade Id="$(var.UpgradeCode)"> 
    <UpgradeVersion Minimum="1.0.0.0" Maximum="3.0.0.0" Property="PREVIOUSVERSIONSINSTALLED" IncludeMinimum="yes" IncludeMaximum="no" IgnoreRemoveFailure="yes" /> 
</Upgrade> 

<MajorUpgrade AllowDowngrades="no" DowngradeErrorMessage="Cannot downgrade!" IgnoreRemoveFailure="yes" AllowSameVersionUpgrades="no" /> 

メジャーアップデートは、(それが唯一のtheeseファイルが含まれています)私の製品にいくつかのDLLファイルを置き換える必要があります。そして、私はメジャーアップデートを持っています。しかしインストーラは古いバージョンを削除して新しいバージョンをインストールします。新しいファイルを除くすべての古いファイルは削除されます。古いファイルを削除せずにアップグレードをインストールするにはどうすればよいですか(RemoveExistingProductsを抑制する)。これは、MajorUpgradeタグを削除し、Program Files(SuperProduct 2.4.0とSuperProduct 2.4.1)で2つのプログラムを受け取るオプションではありません。 アイデアはありますか?

+0

コメントを回答に移動しました。 –

答えて

1

アップグレードの代わりにパッチを作成してください。これはまさにパッチが必要なものです。いくつかの重要なファイルを置き換え、残りの部分はそのままインストールしておきます。私はまだパッチをインストールしていませんが、手順はwixチュートリアルやNick RamirezのWix 3.6の本にあるはずです。マイナーアップグレードも機能するかもしれませんが、私は常にメジャーアップグレードを実装するだけで、アップグレードタイプの違いについて100%確信していません。

+0

私はパッチではなくメジャーアップグレードを行う必要があります – Anton23

+0

メジャーアップグレードは定義どおりに動作しません。すべての古いファイルを引き続き使用できるようにするには、メジャーアップグレードインストーラにもそれらを含める必要があります。 RemoveExistingProductsは、[プログラムの追加と削除]リストからエントリを削除するので、これを抑制すると、リストに2つのエントリが表示されます。なぜ大規模なアップグレードが必要なのですか?マイナーアップグレードとパッチの目的は、いくつかのファイルを置き換えてバージョンを更新(マイナーアップグレード)したり、バージョンを同じ(パッチ)のままにして、他のすべての古いファイルをそのままにします。 –

+0

マイナーなアップデート(パッチではない)の作成方法は? – Anton23