У меня есть приложение, которое мы переключаем на установщик WiX. Пока что вроде как все идет хорошо. Единственная проблема, с которой я столкнулся, заключается в том, что если старая версия загружается и пытается установить, она делает это.
И это небольшая проблема. Если установлена более новая версия, я не хочу, чтобы она устанавливала старую версию. Я думал, что проблема в компоненте «Обновление», но должен признать, что наткнулся на стену. Как я могу изменить его так, чтобы более старые версии видели, что уже установлена более новая версия, и не устанавливали ее?
Мой тестовый продукт сейчас находится в версии 2.4 (новейшая версия, которую мы пытаемся выпустить). Он правильно обновляется до 2.4.1, 2.5 или 3.0. Но если я сделаю версию 3.0, а затем запустил msi для 2.4, она все равно добавится.
Мой компонент обновления:
<Upgrade Id="PUT-GUID-HERE">
<UpgradeVersion Maximum="2.4" Property="PREVIOUSVERSIONSINSTALLED" />
<UpgradeVersion Minimum="1.0" Property="NEWERPRODUCTFOUND" OnlyDetect="yes" IncludeMinimum="no" />
</Upgrade>
Дальнейшие действия:
После предложения Штейнса у меня возникла такая ошибка:
«Обнаружен повторяющийся символ WixAction: InstallExecuteSequence / RemoveExistingProducts»
После просмотра файла Product.wxs под <InstallExecuteSequence>
мне пришлось удалить <RemoveExistingProducts Sequence="6550" />
потому что это был дубликат, о котором говорилось. После этого установщик заработал, и старые версии больше не могут быть установлены поверх новых.