(EDIT: вопрос изменен.)
У меня есть продукт с установщиком, который был создан InstallShield 2010 и, судя по всем учетным записям, устанавливается просто как «новая» установка.
Периодически вношу изменения в содержимое установки, по мере обновления того или иного компонента исправлениями ошибок и так далее. В это время я пытаюсь изменить номера версий в метаданных обновленных файлов, но есть компоненты, для которых это невозможно. Конечно, они всегда заканчиваются более поздними датами модификации. Я также меняю номер версии продукта в данных MSI. Тем не менее, я не меняю код пакета каждый раз.
Когда некоторые пользователи запускают программу установки в системе, где мой продукт уже присутствует, им предлагается пользовательский интерфейс режима обновления («Хотите обновить?» и т. д.), и программа установки завершается. Однако обновленные файлы не всегда перезаписывают старые файлы до тех пор, пока после этого не будет запущена «восстановительная» установка, особенно если номер версии не изменился, и теперь есть свидетельства того, что пометка содержимого компонента с помощью «принудительной перезаписи» не работает. не изменить это поведение.
Что тут происходит? Есть ли способ получить лучший результат? Нужно ли менять код пакета всякий раз, когда я пересматриваю продукт или обновляю компонент? (Редактировать: код пакета меняется каждый раз, когда я собираю выпуск, поэтому проблема не в этом.)
Редактировать: это пользовательский интерфейс обновления, но обслуживание после обновления — это то, что фактически завершает желаемую установку.