Como o ClickOnce executa atualizações de aplicativos

O ClickOnce usa as informações de versão do arquivo especificadas no manifesto de implantação de um aplicativo para decidir se deseja atualizar os arquivos do aplicativo. Após o início de uma atualização, o ClickOnce usa uma técnica chamada aplicação de patch de arquivo para evitar o download redundante de arquivos de aplicativo.

Aplicação de patch de arquivo

Ao atualizar um aplicativo, o ClickOnce não baixa todos os arquivos para a nova versão do aplicativo, a menos que os arquivos tenham sido alterados. Em vez disso, ele compara as assinaturas de hash dos arquivos especificados no manifesto do aplicativo para o aplicativo atual com as assinaturas no manifesto da nova versão. Se as assinaturas de um arquivo forem diferentes, o ClickOnce baixa a nova versão. Se as assinaturas corresponderem, o arquivo não será alterado de uma versão para outra. Nesse caso, o ClickOnce copia o arquivo existente e o usa na nova versão do aplicativo. Essa abordagem impede que o ClickOnce precise baixar todo o aplicativo novamente, mesmo que apenas um ou dois arquivos tenham sido alterados.

A aplicação de patch de arquivo também funciona para assemblies baixados sob demanda usando os DownloadFileGroup métodos e DownloadFileGroupAsync.

Observação

A classe ApplicationDeployment e as APIs no namespace System.Deployment.Application não têm suporte no .NET Core e no .NET 5 e versões posteriores. No .NET 7, há suporte para um novo método de acesso às propriedades de implantação de aplicativos. Para obter mais informações, consulte Acessar propriedades de implantação do ClickOnce no .NET. O .NET 7 não oferece suporte ao equivalente aos métodos ApplicationDeployment.

Se você usar o Visual Studio para compilar seu aplicativo, ele gera novas assinaturas de hash para todos os arquivos sempre que recompilar todo o projeto. Nesse caso, todos os assemblies serão baixados para o cliente, embora apenas alguns assemblies possam ter sido alterados.

A aplicação de patch de arquivo não funciona para arquivos marcados como dados e armazenados no diretório de dados. Eles são sempre baixados independentemente da assinatura de hash do arquivo. Para obter mais informações sobre o diretório de dados, consulte Acessar dados locais e remotos em aplicativos ClickOnce.