Где хранятся настройки .NET пользовательского режима? - PullRequest
35 голосов
/ 22 января 2009

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

Теперь вы ссылаетесь на свою сборку в MyApp, компилируете, затем вы можете изменить значение вашего приложения в настройках с помощью класса настроек, сгенерированного в SettingsHolder, и сохранить их.

Теперь перейдите в выходной каталог MyApp, и нет никаких следов ваших настроек (ничего в файле конфигурации приложения, ничего в сборке, ничего!).

Что происходит ?! (Я попытался выполнить пошаговую отладку в исходном коде .NET и рефлекторе, чтобы увидеть, что происходит, .NET, похоже, использует LocalFileSettingsProvider (но мне это кажется странным, поскольку в MyApp.exe.config в выходном каталоге ничего нет).

Ответы [ 3 ]

54 голосов
/ 22 января 2009

Файлы настроек хранятся в разных местах для каждого пользователя. Чтобы найти их, щелкните меню «Пуск», нажмите «Выполнить» и вставьте:

%USERPROFILE%\Local Settings\Application Data\

и нажмите ввод. Там будет папка с вашим «Название компании» (независимо от того, какой она установлена ​​в вашей сборке) и затем еще несколько подпапок. Настройки хранятся в user.config.

Полный путь:

%USERPROFILE%\Local Settings\Application Data\<Company Name>\
<appdomainname>_<eid>_<hash>\<verison>\user.config.

В Windows Vista и новее они хранятся в:

%USERPROFILE%\AppData\Local\

Дополнительная информация:

1 голос
/ 21 января 2016

В ОС> = Vista Я буду требовать файл настроек пользователя, который находится здесь:

% LOCALAPPDATA% \ ваша компания \ имя приложения \ .. \ user.config

0 голосов
/ 22 января 2009

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

Edit:

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...