Где хранятся пользовательские настройки .NET?
Мне интересно, что это за файлы .settings в .NET.
Представьте, что вы создаете сборку, названную в этом примере SettingsHolder
, вы создаете свой класс настроек, который является общедоступным со строкой внутри в пользовательском режиме, затем вы компилируете.
Теперь вы ссылаетесь на свою сборку в MyApp, вы компилируете, тогда вы можете изменить значение в своем приложении своей настройки с помощью класса настроек, сгенерированного в SettingsHolder
, и сохранить их.
Теперь перейдите в выходной каталог MyApp, и нет никакой трассировки вашей настройки (ничего в файле конфигурации приложения, ничего в сборке, ничего!).
Что происходит?! (Я попытался отладить исходный шаг в источнике .NET и рефлектор, чтобы увидеть, что происходит,.NET, похоже, использует LocalFileSettingsProvider
(но мне кажется странным, потому что в выходном каталоге ничего нет в MyApp.exe.config
).
Ответы
Ответ 1
Файлы настроек хранятся в другом месте для каждого пользователя. Чтобы найти их, нажмите меню "Пуск", нажмите "Запустить" и вставьте:
%USERPROFILE%\Local Settings\Application Data\
и нажмите enter. Будет папка с вашим "Название компании" (независимо от того, что она настроена в вашей сборке), а затем еще несколько подпапок. Настройки сохраняются в user.config.
Полный путь:
%USERPROFILE%\Local Settings\Application Data\<Company Name>\
<appdomainname>_<eid>_<hash>\<verison>\user.config.
В Windows Vista и новее они хранятся в папке
%USERPROFILE%\AppData\Local\
Дополнительная информация:
Ответ 2
В OS >= Vistastrong > Я буду заявлять файл настройки пользователя, который он здесь находится:
% LOCALAPPDATA%\yourcompany\app-name \..\user.config
Ответ 3
Файл настроек содержится внутри скомпилированной сборки.
Edit:
Просто немного разъяснить. Код в get
и set
параметры из файла компилируются в сборку. Сами значения перемещаются в Program.exe.config
, где Program
- это имя вашего приложения. Reflector позволит вам увидеть код, который получает и устанавливает значение, включая жестко запрограммированный ключ, в файл конфигурации. Сам файл конфигурации покажет вам значение и позволит вам изменить его после создания приложения.