Pergunta

Na minha WPF aplicativo, eu clicar em Settings.settings no Solution Explorer e digite um StringCollection variável com um usuário escopo:

text alt

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?

Foi útil?

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\
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top