Partilhar via


ClickOnce e configurações do aplicativo

As configurações de aplicativo para Windows Forms facilitam a criação, o armazenamento e a manutenção de preferências personalizadas do aplicativo e do usuário no cliente. O documento a seguir descreve como os arquivos de configurações do aplicativo funcionam em um aplicativo ClickOnce e como o ClickOnce migra as configurações quando o usuário atualiza para a próxima versão.

As informações abaixo se aplicam somente ao provedor de configurações padrão do aplicativo, a LocalFileSettingsProvider classe. Se você fornecer um provedor personalizado, esse provedor determinará como armazena seus dados e como atualiza suas configurações entre as versões. Para obter mais informações sobre provedores de configurações de aplicativos, consulte Arquitetura de configurações de aplicativos.

Arquivos de configurações do aplicativo

As configurações do aplicativo consomem dois arquivos: <app>.exe.config e user.config, onde app é o nome do seu aplicativo do Windows Forms. user.config é criado no cliente na primeira vez que seu aplicativo armazena configurações de escopo do usuário. <app>.exe.config, por outro lado, existirá antes da implantação se forem definidos valores padrão para as configurações. O Visual Studio incluirá esse arquivo automaticamente quando você usar seu comando Publicar . Se você criar seu aplicativo ClickOnce usando Mage.exe ou MageUI.exe, você deve certificar-se de que esse arquivo está incluído com os outros arquivos do seu aplicativo quando você preencher o manifesto do aplicativo.

Observação

No ClickOnce para .NET Core 3.1 e .NET 5 ou posterior, use dotnet-mage.exe em vez de Mage.exe. Para obter mais informações, consulte ClickOnce para .NET.

Em um aplicativo do Windows Forms não implantado usando ClickOnce, o arquivo <do aplicativo>.exe.config é armazenado na diretoria do aplicativo, enquanto o arquivo user.config é armazenado na pasta Documents and Settings do usuário. Em um aplicativo ClickOnce, <o aplicativo>.exe.config vive no diretório do aplicativo dentro do cache do aplicativo ClickOnce e user.config vive no diretório de dados ClickOnce desse aplicativo.

Independentemente de como implante a sua aplicação, as definições da aplicação garantem acesso de leitura seguro ao <app>.exe.config, e acesso seguro de leitura/gravação ao user.config.

Em um aplicativo ClickOnce, o tamanho dos arquivos de configuração usados pelas configurações do aplicativo é limitado pelo tamanho do cache ClickOnce. Para obter mais informações, consulte Visão geral do cache ClickOnce.

.NET Core e .NET 5+

Atualmente, um assembly .NET Core a ser publicado precisa ser assinado com um arquivo de chave de nome forte. Se não estiver, ApplicationSettingsBase.Upgrade o método não copia as configurações corretamente após uma nova publicação do ClickOnce. Você pode especificar o uso de um nome forte nas propriedades do projeto .NET Core, na opção de nomenclatura Build > Strong .

Atualizações de versão

Assim como cada versão de um aplicativo ClickOnce é isolada de todas as outras versões, as configurações do aplicativo para um aplicativo ClickOnce também são isoladas das configurações de outras versões. Quando o usuário atualiza para uma versão posterior do aplicativo, as configurações do aplicativo comparam as configurações da versão mais recente (número mais alto) com as configurações fornecidas com a versão atualizada e mescla as configurações em um novo conjunto de arquivos de configurações.

A tabela a seguir descreve como as configurações do aplicativo decidem quais configurações copiar.

Tipo de alteração Ação de atualização
Definição adicionada ao <aplicativo>.exe.config A nova configuração é incorporada na aplicação da versão atual<.exe.config>
Configuração removida do <aplicativo>.exe.config A configuração antiga é removida do ficheiro de configuração <app>.exe.config da versão atual.
O padrão da configuração foi alterado; configuração local ainda definida como padrão original no user.config A configuração é mesclada no user.config da versão atual com o novo padrão como o valor
O padrão da configuração foi alterado; configuração definida como não padrão no user.config A configuração é mesclada no user.config da versão atual com o valor não padrão retido

Caso tenhas criado a tua própria classe de encapsulamento das definições da aplicação e desejes personalizar a lógica de atualização, podes substituir o método Upgrade.

ClickOnce e configurações de roaming

O ClickOnce não funciona com configurações de roaming, o que permite que seu arquivo de configurações siga você em todas as máquinas de uma rede. Se precisar de configurações de roaming, você precisará implementar um provedor de configurações de aplicativo que armazene configurações pela rede ou desenvolver suas próprias classes de configurações personalizadas para armazenar configurações em um computador remoto. Para obter mais informações sobre provedores de configurações, consulte Arquitetura de configurações de aplicativo.