Здравствуйте, с этой статье я покажу как реализовать автообновление для вашей программы. Мы создадим программу для обновления первой.
Я сделаю программу для автообновления своей программы ParseDarkOrbit.
Нам понадобится хостинг для сайта. (юкоз не подходит).
Создаем новый проект в студии.
Добавляем на него 1 ProgressBar и 1 Label.
Лейбл назовем statuslbl
[Ссылки могут видеть только зарегистрированные пользователи. ]
Перейдем к коду.
После
Код:
Public Class Form1
Добавим
Код:
Dim WithEvents wc As New System.Net.WebClient
Dim vers As String
Private Sub wc_DownloadFileCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.AsyncCompletedEventArgs) Handles wc.DownloadFileCompleted
statuslbl.Text = "Обновления загружены."
Process.Start("название вашей программы.exe")
End
End Sub
Private Sub wc_DownloadProgressChanged(ByVal sender As Object, ByVal e As System.Net.DownloadProgressChangedEventArgs) Handles wc.DownloadProgressChanged
ProgressBar1.Value = e.ProgressPercentage
statuslbl.Text = "Загрузка... Последняя версия " & vers
End Sub
[Ссылки могут видеть только зарегистрированные пользователи. ]
Далее зальем на сайт файлик vers.txt.
И впишем в него актуальную версию. В моем случае V1.4
В событие форм лоад добавим следующие:
Код:
vers = wc.DownloadString("http://вашсайт.ru/vers.txt")
wc.DownloadFileAsync(New Uri("http://вашсайт.ru/название вашей программы.exe"), "название вашей программы.exe")
Что получилось у меня:
[Ссылки могут видеть только зарегистрированные пользователи. ]
Теперь зальем на сайт новую версию программы:
[Ссылки могут видеть только зарегистрированные пользователи. ]
Сохраняем и переходим к программе которую нужно обновить. (Я использую свою программу ParseDarkOrbit.)
Добавим на форму основной программы Label с названием currentvers и впишем в него текущую версию.
[Ссылки могут видеть только зарегистрированные пользователи. ]
Теперь перейдем к коду:
Нам нужно событие формлоад.
Вставляем в него следующие:
Код:
Dim WC2 As New WebClient
Dim currvers As String = WC2.DownloadString("http://вашсайт.ru/vers.txt")
If currvers = currentrvers.Text Then 'проверяем версию программы и на сайте.
Else
Process.Start("Название программы для обновления.exe")
End
End If
[Ссылки могут видеть только зарегистрированные пользователи. ]
Вообщем все готово. Осталось протестировать. Если что-то не понятно, можно посмотреть видео.
Video
________________
Последний раз редактировалось OrBiT_DaRk; 10.05.2013 в 16:09.
Ужасный код, отсутствует куча проверок на различные ситуации, например:
1. Нет интернета
2. Интернет оборвался во время закачки
3. Сайт лежит
4. Файл не найден
5. Еще одна копия запущена
и это только первое, что приходит на ум.
Не говоря уже о том, насколько безграмотно реализовано взаимодействие с UI из другого контекста.
Да о чем речь... когда все создание автообновления занимает 4-5 минут судя по видео.
________________ Fireball - Быстрое снятие и загрузка скриншотов на хостинг.