Где хранится свойство .Settings.Default?

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

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

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

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

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

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

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

Ответ 1

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

Ответ 2

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

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

Ответ 3

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

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

Ответ 4

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

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

Ответ 5

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

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

Ответ 6

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

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

Ответ 7

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

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

Ответ 8

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