デプロイメントのバージョン間でUIRefタグを変更しました。
バージョン1.0から: <UIRef ID="WixUI_FeatureTree" />
バージョン2.0へ: <UIRef ID="WixUI_Advanced" />
Wixバージョン3.6
現在、バージョン2.0インストーラーを実行すると、以前のバージョンが検出されないため、アップグレード中にアンインストールする代わりに、既存のバージョンの隣に新しいバージョンをインストールします。
中間バージョンは正常にアップグレードされました(1.0-> 1.1-> 1.2)。
2.0での主な変更点は次のとおりです。
- メインの下の新しいサブ機能
- WixUI_FeatureTreeからWixUI_AdvancedへのUIRefに変更して、展開で「AllUsers」と「SingleUser」から選択できるようにします。
既存の製品の削除は次のように定義されています。
<InstallExecuteSequence>
<RemoveExistingProducts After='InstallInitialize' />
<Custom Action=...
...
私の製品は次のように定義されています:
#UpgradeCode# is consistent between versions
#ProductId# is changed between versions
<Product Id="#ProductId"
UpgradeCode="#UpgradeCode#"
Name="!(loc.ApplicationName)"
Language="1033"
Codepage="1252"
Version="2.0.0"
Manufacturer="!(loc.Manufacturer)">
<Package
Id="*"
InstallerVersion="300"
InstallPrivileges="elevated"
Languages="1033"
Compressed="yes"
InstallScope="perMachine"
Manufacturer="!(loc.Manufacturer)"
SummaryCodepage="1252"
Platform="x86"
Description="!(loc.ApplicationName)"/>
<Upgrade Id="#UpgradeCode#">
<UpgradeVersion OnlyDetect="no" Property="PREVIOUSFOUND"
Minimum="1.0.0" IncludeMinimum="yes"
Maximum="2.0.0" IncludeMaximum="no"/>
</Upgrade>
インストーラーにアップグレードをチェックさせ、変更後に処理されなくなった以前のバージョンの削除を実行させるためにできることがあるかどうか疑問に思っています。