Persistindo variáveis ??app.config em atualizações via Clique uma vez implantação
-
05-07-2019 - |
Pergunta
Cada vez que uma nova atualização é lançada para um aplicativo com clique uma vez, as variáveis ??no arquivo app.config são destruídos
<userSettings>
<app.My.MySettings>
<setting name="Email" serializeAs="String">
<value />
</setting>
<setting name="UserName" serializeAs="String">
<value />
</setting>
</app.My.MySettings>
</userSettings>
Como posso evitar isso?
Existe alguma maneira de feching as variáveis ??da versão da aplicação anterior?
Solução
Você tem as "candidaturas deverão Check for Updates" opção marcada?
Tenha um olhar em Explorando Segredos de Configurações do aplicativo persistentes (seção intitulado "A manutenção de configurações entre versões do programa"):
Para quaisquer configurações do atual versão de que as configurações de correspondência no versão anterior, esta vontade de rotina importá-los para a versão atual do arquivo user.config:
No ponto de entrada para o seu programa, coloque o seguinte código.
if (Properties.Settings.Default.UpgradeSettings)
{
Properties.Settings.Default.Upgrade();
Properties.Settings.Default.UpgradeSettings = false;
}
Note que UpgradeSettings é um boolean user definição (não aplicação) que você precisa para adicionar a si mesmo, e você quer que o valor padrão a ser True
.
Outras dicas
Se você usar as configurações de nível de usuário em vez das definições em nível de aplicativo, ele irá copiá-los para a frente quando uma nova versão é recuperado. A coisa mais segura a fazer, porém, é para separar esses dados da atualização ClickOnce, uh, "experiência". Ver se isso ajuda: