Где сохраняются данные для Properties.Settings.Default? - PullRequest
45 голосов
/ 26 ноября 2009

В моем приложении WPF я нажимаю Settings.settings в обозревателе решений и вводю переменную StringCollection с Пользователь scope:

alt text

в моем app.config я вижу, что они там сохранены:

<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>

тогда я запускаю свое приложение и с этим кодом:

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);
}

, который дает мне вывод :

one
two
three
four
five
six
seven
added in code

Я снова запускаю приложение , и оно дает мне такой вывод:

one
two
three
four
five
six
seven
added in code
added in code

Но я снова смотрю на app.config , и он все еще имеет исходные значения :

<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>

Где хранятся значения, добавленные приложением?

Ответы [ 2 ]

47 голосов
/ 26 ноября 2009

Поскольку вы выбрали область пользователя, они сохраняются в каждом каталоге профиля пользователя, более конкретно, в папке AppData профиля пользователя в файле с именем user.config.

Полный путь зависит от приложения.

В Windows 7 без перемещаемого профиля и с приложением Windows Forms с именем Example.Settings.CustomClass я получаю следующую папку:

C:\Users\[user]\AppData\Local\Microsoft\Example.Settings.CustomCl_Url_3qoqzcgn1lbyw2zx3oz1o3rsw2anyjsn\1.0.0.0

Также обратите внимание, что они сохраняются с учетом версии вашего приложения и что значения, хранящиеся в App.config, являются значениями по умолчанию, используемыми для нового пользователя.

0 голосов
/ 19 февраля 2018

Я искал в настройках Win 10. Если кому-то еще нужно знать, они не хранятся в подпапке Microsoft (см. Предыдущий ответ). Просто посмотрите здесь:

C:\Users\[user]\AppData\Local\Example\Example...\1.0.0.0\
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...