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

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

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

Спасибо!

Ответы [ 4 ]

9 голосов
/ 23 января 2010

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

5 голосов
/ 23 января 2010

Вы можете взглянуть на ClickOnce или Блок приложения обновлений .

1 голос
/ 23 января 2010

Я не большой поклонник ClickOnce. Мне нравится концепция, но не конкретная реализация.

Способ, которым я в прошлом занимался системой обновления приложений, заключается в том, чтобы сжать все файлы приложения в файл-контейнер и поместить его на мой веб-сервер. Чтобы упростить задачу, я автоматизировал создание файла контейнера. На веб-сервере у меня есть файл информации о версии, в котором перечислены текущая версия и URL-адрес контейнера, например: 1.0.0.0|http://www.example.com/path/to/container.file. Чтобы проанализировать файл информации о версии, все, что нужно приложению, это разделить содержимое файла, используя символ «|». Первым элементом массива будет номер версии, а вторым элементом будет путь к файлу контейнера.

При запуске и через регулярные промежутки времени, например каждые 2 дня (на случай, если пользователь оставляет приложение запущенным в течение длительного периода времени), я имею приложение, проверяющее файл информации о версии на веб-сервере и определяющее, указанная там версия идет после работающей версии. Если есть обновление, приложение запрашивает пользователя. Если пользователь хочет обновление, приложение загружает контейнер с URL-адреса, указанного в файле информации о версии, и сохраняет содержимое в папке приложения, переименовывая текущий исполняемый файл в xxx.exe.old, чтобы новый файл был сохранен как * 1007. *. Затем приложение перезапускается, и новый exe удаляет xxx.exe.old.

Если вы хотите опубликовать новую версию вашего приложения, все, что вам нужно сделать, это увеличить номер версии вашего приложения, обновить файл информации о версии новым номером версии и загрузить обновленный файл контейнера на ваш веб-сервер. .

0 голосов
/ 23 января 2010

Я бы предпочел, чтобы приложение не делало автоматические обновления без моего ведома.

На самом деле, я бы предпочел, чтобы мне говорили, что требуется обновление, тихое обновление будет восприниматься как вредоносное, скрывать что-то от пользователя и захватывать компьютер без моего согласия. Что произойдет, если автоматическое обновление испортит машину, не зная, почему машина «выходит из строя» из-за испорченного реестра и т. Д ...

Да, это спорно ...

Мои 2цента

...