У меня есть проект шаблона VSTO Excel, который устанавливается/обновляется с помощью ClickOnce. Если я запускаю автоматическое обновление, оно обновляется нормально, но я хотел бы предоставить пользователю возможность ручного обновления.
Проблема в том, что выполнение ApplicationDeployment.CurrentDeployment.UpdateAsync (или .Update) не приводит к каким-либо ошибкам, а развертывание просто не обновляется. Номер версии в программе «Установка и удаление» остается прежним, и, что еще более необычно, флаг ApplicationDeployment.IsNetworkDeployed переключается на false.
Таким образом, кажется, что единственным эффектом запуска .Update является установка для IsNetworkDeployed значения false. Полный код немного длинноват, но в основном он сводится к следующему:
Private Sub ThisWorkbook_Startup() Handles Me.Startup
Dim info As UpdateCheckInfo
If ApplicationDeployment.IsNetworkDeployed Then
Dim AD As ApplicationDeployment = ApplicationDeployment.CurrentDeployment
info = AD.CheckForDetailedUpdate
If info.UpdateAvailable Then
AD.UpdateAsync()
End If
End If
End Sub