Где хранятся Properties.Settings.Default?

Я думал, что знаю это, но сегодня я ошибаюсь - снова.

Работает VS2008, .NET 3.5 и C#. Я добавил пользовательские настройки на вкладку "Свойства" со значениями по умолчанию, а затем прочитал их, используя этот код:

myTextBox.Text = Properties.Settings.Default.MyStringProperty;

Затем, после того, как пользователь отредактировал значение в диалоге настроек, я сохранил его так:

Properties.Settings.Default.MyStringProperty = myTextBox.Text;
Properties.Settings.Default.Save();

Мой вопрос, где это новое значение сохраняется? файл MyApp.exe.config в каталоге исполняемых файлов не обновляется, он по-прежнему содержит значения по умолчанию. Плюс, насколько я могу судить, ни один из других файлов в этом каталоге также не обновляется! Однако, когда программа считывает значение обратно, оно получает измененное значение, поэтому я знаю, что оно где-то сохранено...

Это не просто учеба, мне нужно было иметь возможность вручную редактировать значение сегодня утром, и я был ошеломлен, когда не смог найти ничего, что менялось.

6 ответов

Решение

Чтобы работать с более новыми версиями политики Windows, согласно которой по умолчанию разрешен доступ только для чтения к папке Program Files (если только вы не запрашиваете повышение прав с помощью UAC, но это уже другая тема...), ваше приложение будет иметь папку настроек в %userprofile%\appdata\local или же %userprofile%\Local Settings\Application Data в зависимости от того, какую версию Windows вы используете, для настроек, которые зависят от пользователя. Если вы сохраните настройки для всех пользователей, они будут находиться в соответствующей папке C:\users или же C:\Documents and Settings для всех профилей пользователей (например: C:\users\public\appdata\local).

Вы можете получить путь программно:

using System.Configuration;  // Add a reference to System.Configuration.dll
...
var path = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.PerUserRoamingAndLocal).FilePath;

Спасибо, что указал мне правильное направление. Я нашел user.config, расположенный в этом чудовище: c:\users\USER\AppData\Local\COMPANY\APPLICATION.exe_Url_LOOKSLIKESOMEKINDOFHASH\VERSION\user.config.

Мне пришлось обновить версию приложения, и все настройки, казалось, исчезли. Приложение создало новую папку с новой версией и использовало настройки по умолчанию. потребовалось целую вечность, чтобы найти, где файл был сохранен, но затем это было простое копирование и вставка, чтобы получить настройки для новой версии.

Он сохраняется в ваших документах и ​​настройках \%user%\Local Settings\Application Data...... и т. д. найдите там файл с именем user.config

однако местоположение может измениться.

Если вы используете Windows 10, это каталог:

C:\Users<Имя пользователя>\AppData\Local\

+

\ 1.0.0.0

Одна из моих служб Windows зарегистрирована как локальная система на сервере Windows 2016, и я могу найти файл user.config в папке C:\Windows\SysWOW64\config\systemprofile\AppData\Local\{имя вашего приложения}.

Я думаю, что самый простой способ - найти имя вашего приложения на диске C, а затем проверить, где находится user.config

Они сохранены в YOUR_APP.exe.config, файл сохраняется в той же папке с YOUR_APP.exe файл, <userSettings> раздел:

   <userSettings>
      <ShowGitlabIssues.Properties.Settings>
         <setting name="SavedUserName" serializeAs="String">
            <value />
         </setting>
         <setting name="SavedPassword" serializeAs="String">
            <value />
         </setting>
         <setting name="CheckSave" serializeAs="String">
            <value>False</value>
         </setting>
      </ShowGitlabIssues.Properties.Settings>
   </userSettings>

вот код cs:

public void LoadInfoLogin()
{
    if (Properties.Settings.Default.CheckSave)// chkRemember.Checked)
    {
        txtUsername.Text = Properties.Settings.Default.SaveUserName;
        txtPassword.Text = Properties.Settings.Default.SavePassword;
        chkRemember.Checked = true;
    }
...

Пользовательские настройки сохраняются в папке данных приложения пользователя для этого приложения. Искать user.config файл.

Я не знаю, что вы ожидали, так как пользователи часто даже не имеют права на запись в исполняемый каталог.

Для тех, кому интересно, где находятся настройки для приложений из Microsoft Store, они либо в WindowsApps, что очень заблокировано, но вы можете попасть туда, открыв свое приложение, а затем открыв путь к файлу с помощью диспетчера задач.

Но более вероятно, что они сохранены в C:\Users\[USERNAME]\AppData\Local\Packages\[NUMBERS][COMPANY].[APPLICATION]_[RANDOMDATA]\LocalCache\Local\[COMPANY]\[APPLICATION].exe_Url_[RANDOMDATA]\[VERSION]\user.config.

В корневой папке вашего проекта есть папка "Свойства", в которой находится файл *.settings. Вот где он хранится.

Другие вопросы по тегам