Поделиться через


Выполнение обновлений приложения службой ClickOnce

ClickOnce использует сведения о версии файла, указанные в манифесте развертывания приложения, чтобы решить, следует ли обновлять файлы приложения. После начала обновления ClickOnce использует метод, называемый исправлением файлов, чтобы избежать избыточного скачивания файлов приложения.

Исправление файлов

При обновлении приложения ClickOnce не скачивает все файлы для новой версии приложения, если файлы не были изменены. Вместо этого он сравнивает хэш-подписи файлов, указанных в манифесте приложения для текущего приложения, с подписями в манифесте для новой версии. Если подписи файла отличаются, ClickOnce скачивает новую версию. Если сигнатуры совпадают, файл не изменился с одной версии на следующую. В этом случае ClickOnce копирует существующий файл и использует его в новой версии приложения. Этот подход не позволяет ClickOnce снова скачать все приложение, даже если только один или два файла были изменены.

Исправление файлов также работает для сборок, скачанных по запросу с помощью DownloadFileGroup методов и DownloadFileGroupAsync методов.

Примечание.

Класс ApplicationDeployment и API в System.Deployment.Application пространстве имен не поддерживаются в .NET Core и .NET 5 и более поздних версиях. В .NET 7 поддерживается новый метод доступа к свойствам развертывания приложения. Дополнительные сведения см. в разделе "Свойства развертывания Access ClickOnce" в .NET. .NET 7 не поддерживает эквивалент методов ApplicationDeployment.

Если вы используете Visual Studio для компиляции приложения, он создаст новые хэш-подписи для всех файлов при перестроении всего проекта. В этом случае все сборки будут загружены на клиент, хотя только несколько сборок могли измениться.

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