Я не использовал clickonce, но пару лет назад мне пришлось написать что-то, что будет автоматически обновляться. Я не могу найти код или я бы опубликовал, но это то, что он сделал:
1) Главный exe-файл посмотрел бы сборку и нашел бы версию.
2) Если exe-файл может подключиться к общедоступному серверу, он проверит и увидит, доступна ли другая сборка.
3) Если сборка была доступна, она загрузила бы ее и запустила новую сборку.
4) Если сборка не была доступна или не имела подключения к интернету, она просто запустила бы локальную.
Для этого не требуется взаимодействия с пользователем.