2017-11-15 20 views
0

WiXのMajorUpgrade要素が既存のバージョンをアンインストールしているようです。しかし、1.0.0をアンインストールせずに1.0.0から2.0.0にアップグレードする必要があります。しかし、これは、プログラムの追加と削除に1.0.0と2.0.0の両方が表示されることを意味するものではありません。私の1.0.0バージョンには、ファイル、レジストリエントリ、カスタムWindowsサービスなどがあります。私の2.0.0は本質的に、既存のファイルを修正し、新しいファイルを追加します。私たちの場合、これらのような変更だけを行い、メジャーバージョンを増やすことは可能です。しかし、このために、私はサービスをアンインストールして再インストールすることは望ましくありません。しかし、新鮮なインストールの場合は、すべてのコンポーネントをインストールする必要があります。たとえば、顧客に7.9.0のバージョンがインストールされていて、8.0.0にアップグレードしたい場合(メジャーバージョンが更新されるか、マイナーアップグレードが技術的に重要なのは、7.9.0から8.0への段階的な変更しかないためです) .0?)、7.9.0を完全にアンインストールすると、データの損失などの問題が発生する可能性があります。これを達成する方法はありますか?もしそうなら、誰かがいくつかのステップ/例を提供したり、これを示すいくつかのリンクを提供してもらえますか?注:私はではなく、パッチについて語っています。私はパッチを動作させることができます。しかし、マイナーアップグレードとスモールアップデートの間でも混乱します。 <MajorUpgrade>要素を使用しての話を他の多くの記事があるのに対し、<アップグレード>要素を使用する方法について既存のバージョンをアンインストールせずにWiXをアップグレード

FireGiant's Tutorial会談。

+2

InstallFinalizeの後にRemoveExistingProductsアクションをスケジュールするような音がします。そうすれば、あなたの2.0 MSIはあなたの1.0のインストールの上にインストールし、最後に1.0のアンインストール/アンインストールを試みます。 – jbudreau

答えて

0

jbudreauが正しい。メジャーアップグレードには2つの異なるタイプがあります。初期のメジャーアップグレードでは、新しいバージョンをインストールする前に既存のバージョンをアンインストールします。これはあなたの投稿で説明した動作です。

RemoveExistingProductsアクションを実行してInstallFinalizeの後に移動すると、コンポーネントのルールを使用して既存のファイルが上書きされ、削除する必要があるファイルが削除されます。

+0

私はSchedule = "afterInstallFinalize"で私のMajorUpgrade要素を持っていますが、まだ運はありません。 – Ven

関連する問題