Я проверил все посты, упомянутые выше, и все еще потратил целую вечность, пытаясь заставить это работать.
Подсказка в официальном HOWTO для обновлений на шаге 3 очень помогла: вам нужен новый Product/@Id
, чтобы отключить сообщение "Другая версия этого продукта уже установлена ».
Я использовал этот раздел обновления (дочерний элемент продукта):
<Upgrade Id="$(var.UpgradeCode)">
<UpgradeVersion Minimum="1.0.0"
IncludeMinimum="yes"
OnlyDetect="no"
Maximum="$(var.Version)"
IncludeMaximum="no"
Property="PREVIOUSFOUND" />
</Upgrade>
Обратите внимание, что для OnlyDetect
установлено значение "нет". Это инициирует удаление старой версии, если у вас есть следующий раздел (дочерний элемент продукта):
<InstallExecuteSequence>
<RemoveExistingProducts After="InstallInitialize"/>
</InstallExecuteSequence>
Также обратите внимание, что, по-видимому, только первые три компонента номера версии используются для проверки обновлений ...