У меня есть приложение 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, поэтому к этому времени соединение должно быть установлено.
Кто-нибудь знает, что делать?