MSIの上位バージョンをインストールする前に、あらかじめインストールされている下位バージョンのMSIを削除/アンインストールしたいと考えています。私の製品コードは常にユニークで、アップグレードコードは常に同じです。WIXに上位バージョンのMSIを正しくインストールしてください
(私はインストールをダウングレードできるようにする必要はありません。)
しかし、私は高く、製品のバージョンMSIをインストールするときに、それがインストールされるが、アドオンは/インストール新しい、以前にインストールしたMSIの両方のためのプログラムのエントリを削除するには、まだ存在して。どのようにこの問題を克服する?以下は、このことからもわかるように、私のコード
<Product Id="*" Name="MyApp" Language="1033" Version="1.11.1111" UpgradeCode="00000000-8030-4B76-8F3A-8B8BB1000000">
<Package InstallerVersion="200" Compressed="yes" Platform="x86" />
<MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." AllowDowngrades="no" Schedule="afterInstallInitialize"/>
<Upgrade Id="{00000000-8030-4B76-8F3A-8B8BB1000000}">
<UpgradeVersion OnlyDetect="no" Maximum="99.0.0.0" Property="PREVIOUSVERSIONSINSTALLED" IncludeMaximum="no"/>
<UpgradeVersion OnlyDetect="yes" Minimum="1.0.0.0" Property="NEWERPRODUCTFOUND" IncludeMinimum="no"/>
</Upgrade>
これは、製品タグのIdも静的である必要があることを意味しますか? –
あなたの言うことはアップグレードに適しています。実際の問題は、インストールとアップグレードが現在のユーザーに対して行われた場合は、ARPエントリを複製したことです。この問題は、スコープ「ALLUSERS = 1」でインストールして更新すると発生しません。なぜこれが起こっているのかを知る必要がある –