Wix - Upgrade приведет к старой установке и установит новую

Я хочу, чтобы мой установщик, обнаружив старый, предварительно удалил его, а затем запустил установку нового.

У меня есть следующий Wix XML:

<Product Id="16bf910b-3b0f-4240-914a-81526bce35f4"
       Name="MyProduct"
       Language="1033"
       Version="1.0.0.0"
       Manufacturer="MyCompany"
       UpgradeCode="6ba28d97-41de-4371-a236-b757b7840f7b">
<Package InstallerVersion="200" Compressed="yes" />

<Upgrade Id="6ba28d97-41de-4371-a236-b757b7840f7b">
  <UpgradeVersion Minimum="0.0.0.0"
                  IncludeMinimum="yes"
                  OnlyDetect="no"
                  Maximum="1.0.0.0"
                  IncludeMaximum="yes"
                  Property="PREVIOUSFOUND" />
</Upgrade>
<InstallExecuteSequence>
  <RemoveExistingProducts After="InstallValidate"/>
</InstallExecuteSequence>

При генерации файла MSI установите его (версия 1.0.0.0), все в порядке. Теперь я изменил Product/@Version на 1.0.1.0 и снова щелкнул MSI, на этом этапе я получаю сообщение: «Существовала предыдущая установка этого продукта, сначала удалите ее ...».

Как я могу изменить это поведение? Спасибо


person Arnaud F.    schedule 27.02.2012    source источник


Ответы (1)


Product @ Id сопоставляется со свойством ProductCode установщика Windows. Этот идентификатор должен изменяться от сборки к сборке, чтобы стать основным обновлением. Вы можете установить для него значение «*», чтобы компилятор справился с этим за вас.

person Christopher Painter    schedule 27.02.2012
comment
Это удалит предыдущую установку и установит ее должным образом или просто переопределит существующие файлы? (Кстати, это работает, спасибо). - person Arnaud F.; 28.02.2012
comment
Это сложные вопросы, требующие понимания правил компонентов и правил версии файлов по умолчанию. В целом да, но YMMV основывается на этих правилах. - person Christopher Painter; 28.02.2012
comment
Я обновил свою версию Wix до 3.5, и теперь с тегом MajorUpgrade это делается автоматически. Спасибо :) - person Arnaud F.; 28.02.2012