Я работаю над этим уже несколько месяцев без реального успеха.Я собрал воедино код из разных источников, и это то, что у меня есть.
Иногда оно работает как положено, иногда приложение просто зависает, а иногда обновляется 4 раза.
У меня есть таймеринтервал в 5 минут, который проверяет, доступно ли обновление и есть ли Обновления и перезапуски.Простое право?
Приложение развернуто по сети, и иногда пользователи оставляют приложение работающим неделями, не выходя из системы.При публикации обновления они могут получить ошибки из-за новых функций или изменений в базе данных.
Почему такие разные результаты?
Вот событие загрузки формы ...
Me.Timer2.Interval = 300000 Me.Timer2.Start()
Вот событие Timer_Tick ...
Private Sub Timer2_Tick(sender As Object, e As EventArgs) Handles Timer2.Tick
If CheckForUpdateDue() Then
My.Forms.PopupLoading.Show()
My.Forms.PopupLoading.Label1.Text = "Project is Updating Please Wait..."
My.Forms.PopupLoading.Refresh()
Dim ad As ApplicationDeployment = ApplicationDeployment.CurrentDeployment
ad.Update()
My.Settings.Save()
My.Forms.PopupLoading.Close()
My.Forms.Popup_Restarting.Show()
Application.Restart()
End If
End Sub
Вот функция CheckForUpdateDue ...
Private Function CheckForUpdateDue() As Boolean
Dim isUpdateDue As Boolean = False
If ApplicationDeployment.IsNetworkDeployed Then
Dim AD As ApplicationDeployment = ApplicationDeployment.CurrentDeployment
If AD.CheckForUpdate() Then
isUpdateDue = True
End If
End If
CheckForUpdateDue = isUpdateDue
End Function
Настройки приложения
Настройки обновления приложения