Я хочу добавить к ответ Тома .
Он прав, ClickOnce заботится только об опубликованной версии проекта. Однако, как только ваше приложение запускается на клиентском компьютере и распознает, что это не последняя версия, оно начинает сравнивать хэши файлов из манифеста приложения (манифест приложения - это без расширения «.application» ... пойди разберись). Поэтому он загружает только файлы, которые были изменены; да, перекомпиляция без изменений кода все еще является изменением.
И последнее замечание. Индикатор загрузки, который появляется, когда клиент загружает последнюю версию, всегда показывает полный размер вашего приложения. Тем не менее, будьте уверены, что это только загрузка измененных файлов. Я провел тестирование с монитором пропускной способности, чтобы подтвердить это.