Где хранятся Properties.Settings.Default? - PullRequest
130 голосов
/ 11 июня 2009

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

Запуск 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 ]

131 голосов
/ 11 июня 2009

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

77 голосов
/ 15 августа 2011

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

using System.Configuration;  // Add a reference to System.Configuration.dll
...
var path = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.PerUserRoamingAndLocal).FilePath;
6 голосов
/ 19 июня 2018

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

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

5 голосов
/ 11 июня 2009

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

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

0 голосов
/ 11 июня 2009

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

0 голосов
/ 11 июня 2009

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

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

...