Это философский вопрос.
Учитывая гипотетическое настольное приложение и желание предоставлять автоматические обновления (вместо того, чтобы заставлять людей заходить на веб-сайт, проверять наличие обновлений, загружать обновления, устанавливать), какой из этих двух подходов является более подходящим?
Как и iTunes , он проверяет, есть ли новая версия, и предлагает пользователю загрузить новую версию. Если это так, он загружает исполняемый файл полной установки (в данном случае, файл установщика Windows (.msi)), который устанавливает полную версию (не просто обновление до предыдущей версии - слишком много, чтобы управлять, если существует несколько версий) , Итак, скажем, это версия 10.1.1 - независимо от того, устанавливаете ли вы новую или обновляете, вы используете один и тот же файл. После загрузки он инструктирует пользователя закрыть приложение и запустить файл установки самостоятельно.
Подобно другой, он проверяет наличие новой версии и предлагает пользователю загрузить ее, но вместо того, чтобы просто загрузить исполняемый файл и предложить пользователю запустить его, он фактически запускает его для них - закрывает открытую программу, получает необходимая безопасность для установки файлов.
Проблемы с # 2: много проблем, связанных с закрытием программы, так как программа может открывать другие программы ( Outlook и Excel ), или что, если пользователь был в середине чего-то. Кроме того, для обеспечения безопасности вам необходим доступ локального администратора для установки, что если у вас его нет? В более поздних версиях Windows вы не можете просто переопределить безопасность человека.
Проблемы с # 1: некоторые люди считают, что это будет слишком сложно, слишком много усилий для конечного пользователя.
Я бы предпочел пойти с № 1, потому что это сэкономит 80-120 часов на моем проекте, и его проще внедрить и поддерживать. Тем не менее, у нас есть люди, которые испытывают сильные чувства со всех сторон.
Какова лучшая практика для такого рода вещей?