Где хранится свойство .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. Это где он хранится.