WiX всегда перезаписывает предыдущую версию

У меня есть установщик приложения, которое необходимо установить поверх любой существующей версии, независимо от номера версии.

Вместо этого у меня есть установщик, который постоянно говорит, что мне нужно зайти, чтобы добавить / удалить программы. Это очень расстраивает моих тестировщиков, поскольку оно просто замедляет их работу без какой-либо реальной причины в их сознании - предыдущий пакет установщика всегда просто устанавливался, удаляя все файлы, которые были там ранее, поэтому им никогда не приходилось делать этот шаг. У нас также есть (большая) клиентская база, прошедшая аналогичное обучение в том смысле, что любая версия, которую я устанавливаю прямо сейчас, должна перезаписать любую установку, которая могла быть у меня раньше.

Судя по тому, что я могу понять, парадигма 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 с другим установщиком, что, по-видимому, было проблемой.


person mmr    schedule 22.04.2009    source источник
comment
Я не совсем понял ваше последнее предложение: установка GUID по умолчанию для продукта на * генерирует новый GUID для каждого скомпилированного установщика. Это приводит к новой установке бок о бок для каждого обновления. По крайней мере, я так думал. Я все еще пытаюсь найти простой рабочий PoC для вашей проблемы ...   -  person Martin Booka Weser    schedule 25.06.2012
comment
Мне кажется, что инсталляции никогда не будут рядом. Если коды обновления совпадают, старая версия будет удалена, а на ее место будет установлена ​​новая. Разве это не ожидаемое поведение от wix?   -  person Shadoninja    schedule 30.01.2016
comment
Вы можете найти ответ здесь: stackoverflow.com/questions/11732290/   -  person CITBL    schedule 06.09.2019


Ответы (1)


Вы хотите серьезного обновления. Этому посвящена тема в WiX.chm «Как сделать» (также в Интернете: http://wix.sourceforge.net/manual-wix3/major_upgrade.htm).

person Rob Mensching    schedule 22.04.2009
comment
Смотрю интересно. Так что, если мне просто нужны обновления, но я также хочу разрешить возврат к версии, я просто опускаю вторую часть о запрете установки более низких версий, я думаю. - person mmr; 22.04.2009
comment
@mmr Можешь рассказать, чем ты закончил? Представленная ссылка, похоже, не полностью отвечает на ваш вопрос, во всяком случае, она говорит вам, как делать противоположное тому, что вы хотите. - person user145400; 12.03.2015