Где хранятся пользовательские настройки .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 >= Vista​​strong > Я буду заявлять файл настройки пользователя, который он здесь находится:

% LOCALAPPDATA%\yourcompany\app-name \..\user.config

Ответ 3

Файл настроек содержится внутри скомпилированной сборки.

Edit:

Просто немного разъяснить. Код в get и set параметры из файла компилируются в сборку. Сами значения перемещаются в Program.exe.config, где Program - это имя вашего приложения. Reflector позволит вам увидеть код, который получает и устанавливает значение, включая жестко запрограммированный ключ, в файл конфигурации. Сам файл конфигурации покажет вам значение и позволит вам изменить его после создания приложения.