Каковы некоторые из лучших способов делать тихие обновления для настольного приложения?

В частности, это для настольного приложения .NET 2.0. В настоящее время мы требуем от пользователя вручную пройти процесс обновления через наш веб-сайт.

Каковы наилучшие способы безмолвного или автоматического обновления клиента за кулисами?

Спасибо!

Ответы

Ответ 1

Я бы посоветовал прочитать главу 4 Microsoft. Руководство по жизненному циклу NET Applications. Тот, который я бы продвигал, - это подключение системы автоматического обновления - вы можете написать небольшую систему, чтобы связаться с веб-сервером, который у вас есть, проверить наличие обновления, загрузить и установить исправление для обновления.

Ответ 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центы