Я не большой поклонник ClickOnce. Мне нравится концепция, но не конкретная реализация.
Способ, которым я в прошлом занимался системой обновления приложений, заключается в том, чтобы сжать все файлы приложения в файл-контейнер и поместить его на мой веб-сервер. Чтобы упростить задачу, я автоматизировал создание файла контейнера. На веб-сервере у меня есть файл информации о версии, в котором перечислены текущая версия и URL-адрес контейнера, например: 1.0.0.0|http://www.example.com/path/to/container.file
. Чтобы проанализировать файл информации о версии, все, что нужно приложению, это разделить содержимое файла, используя символ «|». Первым элементом массива будет номер версии, а вторым элементом будет путь к файлу контейнера.
При запуске и через регулярные промежутки времени, например каждые 2 дня (на случай, если пользователь оставляет приложение запущенным в течение длительного периода времени), я имею приложение, проверяющее файл информации о версии на веб-сервере и определяющее, указанная там версия идет после работающей версии. Если есть обновление, приложение запрашивает пользователя. Если пользователь хочет обновление, приложение загружает контейнер с URL-адреса, указанного в файле информации о версии, и сохраняет содержимое в папке приложения, переименовывая текущий исполняемый файл в xxx.exe.old
, чтобы новый файл был сохранен как * 1007. *. Затем приложение перезапускается, и новый exe удаляет xxx.exe.old
.
Если вы хотите опубликовать новую версию вашего приложения, все, что вам нужно сделать, это увеличить номер версии вашего приложения, обновить файл информации о версии новым номером версии и загрузить обновленный файл контейнера на ваш веб-сервер. .