Принудительное обновление приложения ClickOnce при запуске Windows? - PullRequest
0 голосов
/ 03 мая 2018

У меня есть приложение ClickOnce, которое должно автоматически проверять наличие обновлений до запуска приложения. Если я запускаю приложение вручную, это также работает отлично.

Однако я также добавил запись в реестр, чтобы запустить приложение при запуске Windows, и в этом случае проверка обновления не выполняется, и приложение запускается так, как если бы не было обновления - я думаю, потому что к тому времени Приложение запускает подключение к сетевому диску, на котором опубликована установка приложения ClickOnce, еще не установлено.

В качестве обходного пути я попытался вручную принудительно вызвать приложение в своем коде, вызвав его после того, как мое MainWindow уже загружено:

private void checkforupdate() 
{
    try
    {

        ApplicationDeployment ad = ApplicationDeployment.CurrentDeployment;

        if (ad.CheckForUpdate())
        {
            MessageBox.Show("Update available!");
            ad.Update();               
        }
    }
    catch { }
}

Однако по какой-то причине этот код запускает обновление только тогда, когда я запускаю приложение вручную, когда оно запускается автоматически при запуске Windows, ничего не происходит. Часть моего кода, где я вызываю checkforupdate, написана после того, как уже было загружено несколько вещей с того же самого диска, на котором опубликованы установочные файлы ClickOnce, поэтому к этому времени соединение должно быть установлено.

Кто-нибудь знает, что делать?

1 Ответ

0 голосов
/ 04 мая 2018

Хорошо, я обнаружил, что у меня возникло серьезное недопонимание того, как работает обновление приложения ClickOnce: в записи реестра, которая запускает программу при запуске Windows, я ссылался на файл .exe в загадочных пользователях \ Папки AppData \ Local \ Apps \ 2.0 .... - хотя это, конечно, работает и для запуска самого приложения, оно не имеет никакого отношения к самой функции обновления. Обновление происходит только при обращении к ярлыку приложения ClickOnce (.appref-ms) на рабочем столе.

...