В диалоговом окне «Обновления» (которое находится на вкладке «Публикация») не установлены ли флажки для проверки наличия обновлений?
[РЕДАКТИРОВАНИЕ 18/18/2010] Вот еще некоторая информация, которую, я думаю, исправлюВаша проблема.
Методы CheckForUpdate()
и CheckForDetailedUpdate()
сохраняют результаты проверки обновления на диск.В следующий раз, когда приложение запустится, механизм ClickOnce увидит, что доступно обновление, и предложит пользователю нежелательное окно.
По-видимому, обновление представляет собой двухэтапный процесс:
- Шаг 1 - проверьте расположение развертывания на наличие обновлений и сохраните информацию о том, что оно находит в локальномКэш обновлений ClickOnce.
- Шаг 2 - Проверьте локальный кэш обновлений ClickOnce и предложите пользователю окно обновления, если там указано обновление.
Снятие отметкиОпция «Приложение должно проверять наличие обновлений», по-видимому, заставляет ClickOnce пропустить только шаг 1. Шаг 2 все еще выполняется.
Методы CheckForUpdate()
и CheckForDetailedUpdate()
имеют тот же эффект, что и Шаг 1 - данные сохраняются на диске, поэтому при следующем запуске приложения Шаг 2 увидит обновление и отобразит окно обновления.
Хитрость в том, чтобы CheckForUpdate()
и CheckForDetailedUpdate()
не сохранили эту информацию на диске.Это можно сделать с помощью параметрической перегрузки (CheckForUpdate(bool persistUpdateCheckResult)
или CheckForDetailedUpdate(bool persistUpdateCheckResult)
) с параметром, установленным на false
(то есть CheckForUpdate(false)
или CheckForDetailedUpdate(false)
).