Onde está os dados para Properties.Settings.Default salvo?
Pergunta
Na minha WPF aplicativo, eu clicar em Settings.settings no Solution Explorer e digite um StringCollection variável com um usuário escopo:
no meu app.config vejo que eles são salvos lá:
<userSettings>
<TestSettings.Properties.Settings>
<setting name="Paths" serializeAs="Xml">
<value>
<ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<string>one</string>
<string>two</string>
<string>three</string>
<string>four</string>
<string>five</string>
<string>six</string>
<string>seven</string>
</ArrayOfString>
</value>
</setting>
</TestSettings.Properties.Settings>
</userSettings>
então eu executar o aplicativo e com este código:
StringCollection paths = Properties.Settings.Default.Paths;
Properties.Settings.Default.Paths.Add("added in code");
Properties.Settings.Default.Save();
foreach (var path in paths)
{
System.Console.WriteLine(path);
}
que me dá este saída :
one
two
three
four
five
six
seven
added in code
I executar o aplicativo novamente e isso me dá essa saída:
one
two
three
four
five
six
seven
added in code
added in code
Mas eu olho para a minha app.config novamente e ele ainda tem os valores originais :
<userSettings>
<TestSettings.Properties.Settings>
<setting name="Paths" serializeAs="Xml">
<value>
<ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<string>one</string>
<string>two</string>
<string>three</string>
<string>four</string>
<string>five</string>
<string>six</string>
<string>seven</string>
</ArrayOfString>
</value>
</setting>
</TestSettings.Properties.Settings>
</userSettings>
Onde são os valores que são adicionados pelo aplicativo a ser salvo?
Solução
Uma vez que você selecionou escopo do usuário, eles são salvos em cada diretório de perfil de usuário, mais especificamente, dentro da pasta AppData
do perfil do usuário em um arquivo chamado user.config
.
O caminho completo é dependente da aplicação.
No Windows 7 sem perfil móvel e com um Example.Settings.CustomClass
Windows Forms Application chamado Estou recebendo o seguinte pasta:
C:\Users\[user]\AppData\Local\Microsoft\Example.Settings.CustomCl_Url_3qoqzcgn1lbyw2zx3oz1o3rsw2anyjsn\1.0.0.0
Observe também que eles são salvos levando em consideração a versão da sua aplicação e que os valores armazenados no App.config
são os valores padrão utilizados para um novo usuário.
Outras dicas
Eu estava olhando sob Win 10 para as definições. Se qualquer outra pessoa necessidade de saber, eles não são armazenados na subpasta da Microsoft (ver resposta anterior). Basta olhar aqui:
C:\Users\[user]\AppData\Local\Example\Example...\1.0.0.0\