В настоящее время все обновления работают нормально при обновлении до более нового номера версии, однако я получаю странное поведение при понижении версии. Кажется, что он удалит существующую версию, а затем частично установит версию, которую я пытаюсь установить, основной исполняемый файл еще не существует в целевом местоположении, но объявленные ярлыки созданы. Когда объявленный ярлык открывается, он завершает установку (предположительно выполняет ремонт) и затем работает нормально.
У кого-нибудь есть идеи, почему это происходит?
Мой блок обновления выглядит так:
<UpgradeVersion Minimum="0.0.0.0" Maximum="99.0.0.0" Property="PREVIOUSVERSIONSINSTALLED" IncludeMinimum="yes" IncludeMaximum="no" IgnoreRemoveFailure="yes" />
(IgnoreRemoveFailure была попыткой исправить эту проблему, но, похоже, она ничего не сделала)
В моей InstallExecuteSequence у меня есть <RemoveExistingProducts After="InstallValidate" />
Также у меня есть Product Id="*"
и Package Id="*"
Причина, по которой требуется понижение рейтинга, заключается в том, что клиентское приложение должно работать с той же версией, что и сервер, для обеспечения совместимости, и весь процесс должен быть автоматизирован, поэтому, если версии клиент / сервер не совпадают при входе в систему, выполните следующие действия. пользователь может просто нажать «да», и соответствующая версия загружается, устанавливается и запускается. Пока что это работает для обновлений, но для понижения необходим дополнительный неинтуитивный шаг, который заключается в том, чтобы вручную перезапустить приложение, а затем увидеть диалоговое окно установщика Windows перед его запуском.
Конечный результат заключается в том, что независимо от обновления или перехода на более раннюю версию текущую версию необходимо полностью удалить, а загруженную версию - полностью установить, поэтому, если для этого есть другой способ, это также будет хорошим ответом.