У меня есть проект развертывания, который не позволит мне установить по более старой версии. msi файл говорит для удаления программы сначала от, Добавляют/Удаляют программы. Это не хороший пользовательский опыт. Как я могу сделать это так, чтобы установщик просто удалил программное обеспечение сначала и затем установил новую версию?
Это сложно, вам нужно выполнить следующие шаги:
Если вы не выполните 3-й шаг правильно, программа установки все равно установит и сохранит старый файл, ваша версия каждого файла должна быть новой, если вы изменили содержимое.
Установите свойство проекта установки RemovePreviousVersions True
Но вы должны использовать один и тот же UpgradeCode в обоих приложениях установки
Я опробовал несколько сценариев, может быть, это поможет кому-то сэкономить время
Если версия сборки изменится И изменится версия установщика проекта (с изменением ProductCode Guid) -> Приложение устанавливается поверх существующего -> обновляются версии dll и exe -> ЕСЛИ установленный путь отличается, существующие изначально установленные файлы проекта удаляются с того места, где они были установлены. (и файлы, созданные с тех пор, остаются)
Если версия сборки изменяется И изменяется версия установщика проекта (без изменения ProductCode Guid) -> Пользователю предлагается вручную удалить приложение -> если они сначала удалят с панели управления, приложение может быть установлено, а библиотеки DLL и exes будут обновлены до новой версии
Если изменяется ТОЛЬКО версия сборки или изменяется только версия установщика проекта (без изменения кода продукта) -> Пользователю предлагается вручную удалить приложение -> если они сначала удалят с панели управления, приложение может быть установлено, а библиотеки DLL и exes будут обновлены до новой версии
Если изменяется ТОЛЬКО версия установщика проекта (с изменением ProductCode Guid) -> MSI проходит процесс установки, но dll и exe не меняют версию - они соответствуют версии сборки и заменяются файлами той же версии сборки сборки -> ЕСЛИ установленный путь отличается, существующие изначально установленные файлы проекта удаляются с того места, где они были установлены.(все файлы, созданные с тех пор, остаются)
Если версия установщика проекта изменилась (с изменением ProductCode Guid) и версия сборки ниже установленной версии -> Установка начнется, конечный пользователь будет проинформирован о сбое установки старой версии.