Я опробовал несколько сценариев, может быть, это поможет кому-то сэкономить время
Если меняется версия сборки И меняется версия установщика проекта (также с изменением Guid ProductCode) -> Приложение устанавливается поверх существующего-> Обновляются версии dll и exe -> Если путь к файлу установлен другой, существующие изначально установленные файлы проекта удаляются с того места, где они были установлены.(и файлы, созданные с тех пор, остаются)
Если изменяется версия сборки И изменяется версия установщика проекта (без изменения Guid ProductCode) -> Пользователю предлагается вручную удалить приложение -> если они идут вперед и сначала удаляют с панели управленияПосле этого приложение может быть установлено, и библиотеки dll и exe обновляются до новой версии
Если изменяется ТОЛЬКО версия сборки или изменяется только версия установщика проекта (без изменения Guid ProductCode) -> Пользователю предлагается вручную удалитьapplication -> если они сначала удаляются и сначала удаляются из панели управления, то приложение может быть установлено, а dll и exe обновляются до новой версии
Если меняется ТОЛЬКО версия установщика проекта (также с изменением Guid ProductCode Guid) -> MSI проходит процесс установки, но dll и exe не меняют версию - они соответствуют версии сборки и заменяются файлами с той же версией сборки сборки -> Если путь к файлу установлен другой, существующие изначально установленные файлы проекта удаляются fРом, где они были установлены.(любые файлы, созданные с тех пор, остаются)
Если версия установщика проекта изменяется (с изменением также ProductCode Guid) и версия сборки ниже установленной версии -> Установка начнется, когда конечный пользователь получит уведомление, что установка завершится неудачно, поскольку старая версия,