Я знаю, что это старая тема, но я нашел обходной путь. Надеюсь, это поможет кому-то еще нуждающемуся.
Мне нужно было решение, которое запускало бы последовательность обновления во время запуска приложения ClickOnce из кода. Applicatoin.Restart
не делал этого. Мне нужен был способ проверить наличие обновлений, а затем вызвать встроенный менеджер обновлений, чтобы мне не пришлось писать собственный.
'VB Code Sample
Dim strStart As String = System.Environment.GetFolderPath(Environment.SpecialFolder.StartMenu) & "\Programs\Folder\YourApplication.appref-ms"
Application.Exit()
Try
Process.Start(strStart)
Catch ex As Exception
'Do something with the exception
End Try
Единственная проблема, которую я вижу в этом обходном пути, заключается в том, что пользователь может удалить ярлык из меню «Пуск». Если это вызывает озабоченность, вы можете написать код для копирования ссылки в меню «Пуск» в какую-то папку по вашему выбору, предпочтительно в папку приложения ClickOnce. Это важно, потому что значок меню «Пуск» для вашего приложения не является .lnk или .exe, на самом деле это ссылка .appref-ms. См. ClickOnce .appref-ms больше, чем ссылка на файл .application? Эта ссылка объясняет это более подробно.
Этот код будет работать с приложениями ClickOnce SingleInstance.