Где хранятся 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\
+
Одна из моих служб 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. Вот где он хранится.