Каковы некоторые из лучших способов делать тихие обновления для настольного приложения?
В частности, это для настольного приложения .NET 2.0. В настоящее время мы требуем от пользователя вручную пройти процесс обновления через наш веб-сайт.
Каковы наилучшие способы безмолвного или автоматического обновления клиента за кулисами?
Спасибо!
Ответы
Ответ 1
Я бы посоветовал прочитать главу 4 Microsoft. Руководство по жизненному циклу NET Applications. Тот, который я бы продвигал, - это подключение системы автоматического обновления - вы можете написать небольшую систему, чтобы связаться с веб-сервером, который у вас есть, проверить наличие обновления, загрузить и установить исправление для обновления.
Ответ 2
Вы можете взглянуть на ClickOnce или Блок приложений Updater.
Ответ 3
Я не большой поклонник ClickOnce. Мне нравится концепция, но не конкретная реализация.
В прошлом я использовал систему обновления приложений, чтобы закрепить все файлы приложений в файле контейнера и поместить их на свой веб-сервер. Чтобы упростить задачу, я автоматизировал создание файла контейнера. На веб-сервере у меня есть файл с информацией о версии, в котором перечислены текущая версия и URL-адрес контейнера: 1.0.0.0|http://www.example.com/path/to/container.file
. Чтобы проанализировать файл с информацией о версии, все приложение должно выполнить разделение содержимого файла с использованием символа "|". Первый элемент массива будет номером версии, а вторым элементом будет путь к файлу контейнера.
При запуске и с регулярным интервалом, например, каждые 2 дня (на всякий случай, когда пользователь покидает приложение, работающее в течение длительного периода времени), у меня есть приложение, проверяющее файл информации о версии на веб-сервере и определяющий, указанная версия появляется после текущей версии. Если есть обновление, приложение запрашивает пользователя. Если пользователю требуется обновление, приложение загружает контейнер из URL-адреса, указанного в файле информации о версии, и сохраняет содержимое в папке приложения, переименовывая текущий исполняемый файл exe в xxx.exe.old
, чтобы позволить новому exe быть сохраненным как xxx.exe
. Затем приложение перезагружается, а новый exe удаляет xxx.exe.old
.
Если вы хотите опубликовать новую версию своего приложения, все, что вам нужно сделать, это увеличить номер версии вашего приложения, обновить файл информации о версии с новым номером версии и загрузить обновленный файл контейнера на ваш веб-сервер.
Ответ 4
Я бы предпочел, чтобы приложение не делало безмолвных обновлений без моего ведома.
На самом деле, я бы предпочел, чтобы мне сказали, что требуется обновление, безмолвное обновление будет восприниматься как злонамеренное, скрывая что-то от пользователя и принимая машину без моего согласия. Что произойдет, если молчаливое обновление прикручивает машину, не зная, почему машина "сломана" из-за прикрученного реестра и т.д....
Да, это спорно...
Мои 2центы