У меня есть установщик приложения, которое необходимо установить поверх любой существующей версии, независимо от номера версии.
Вместо этого у меня есть установщик, который постоянно говорит, что мне нужно зайти, чтобы добавить / удалить программы. Это очень расстраивает моих тестировщиков, поскольку оно просто замедляет их работу без какой-либо реальной причины в их сознании - предыдущий пакет установщика всегда просто устанавливался, удаляя все файлы, которые были там ранее, поэтому им никогда не приходилось делать этот шаг. У нас также есть (большая) клиентская база, прошедшая аналогичное обучение в том смысле, что любая версия, которую я устанавливаю прямо сейчас, должна перезаписать любую установку, которая могла быть у меня раньше.
Судя по тому, что я могу понять, парадигма WiX заключается в том, чтобы делать такие вещи, как блокирование установок обратной версии и другие сложные вещи, такие как исправление. Откровенно говоря, наши клиенты не достаточно умны, чтобы знать или заботиться о внесении исправлений, слиянии и т. Д., И им просто нужен один установщик, который всегда работает (и я склонен с ними согласиться; полоса пропускания дешевая). Так как мне это получить?
Я пробовал это, но это не имеет значения:
<InstallExecuteSequence>
<RemoveExistingProducts Before="InstallInitialize"/>
</InstallExecuteSequence>
Это версия 3.0.5120 WiX.
РЕДАКТИРОВАТЬ: В соответствии с предложением Роба я добавил этот код:
<InstallExecuteSequence>
<RemoveExistingProducts After="InstallInitialize"/>
</InstallExecuteSequence>
<Upgrade Id="27cb76c7-544e-465f-b1f3-b11d9a49e416">
<UpgradeVersion Minimum="0.8.0"
IncludeMinimum="yes"
Maximum="1.5.1"
Property="OLDERVERSIONBEINGUPGRADED" />
</Upgrade>
Я не добавляю код, запрещающий откат установки; по причинам, которые меня невероятно смущают, давайте просто скажем, что увеличение номера версии не обязательно коррелирует с повышением качества программного обеспечения. Я не хочу, чтобы кто-то лишился того, что, по их мнению, им нужно.
Также очень важно изменить GUID по умолчанию для продукта на «*», чтобы использовать другой GUID с другим установщиком, что, по-видимому, было проблемой.