.NET Где сохраняются настройки моего приложения - PullRequest
1 голос
/ 21 декабря 2011

Я прошу прощения, это будет долго затягивать.Но я чувствую, что понимание того, что я сделал, поможет лучше ответить на мой вопрос.

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

Все этоотлично работает.

Когда дело доходит до моего кодирования, у меня всегда была такая неспособность к обучению, когда мне нужно было точно понять, как что-то работает, прежде чем я смогу чувствовать себя комфортно, используя это.Мне нравятся все вещи, которые Visual Studio делает для меня, но я не могу удержаться, глядя в черный ящик, когда могу.

При этом я начал с использования файла .settings, добавил настройки, которые мне были нужны, и всевсе проверено, как я ожидал.Конечно, он сгенерировал файлы cs и файл app.config безупречно.

Мне это не очень понравилось, поскольку файл конструктора не из инструмента генерации кода T4, поэтому я не мог контролировать этот статический экземпляркласс-обертка - .Default (мне просто не понравилось, как он читает в моем коде) ....

Поэтому я вырвал весь класс из файла конструктора и добавил его в свой собственный файл cs,сделал необходимые изменения и удалил файлы cs и designer и файлы .settings.Запустил все по-прежнему в рабочем состоянии.

Затем, чтобы убедиться, что он все правильно подбирает, я добавил в класс дополнительную настройку со всеми надлежащими атрибутами и т. Д. И, конечно же, он обнаружился в моем коде и работал отлично.Я мог сбросить, сохранить и т. Д. Точно так же, как те настройки, которые были сгенерированы из исходного файла .settings.

Однако ...

Я заметил, что app.config не отражает новое значение, и, похоже, это не отражало изменения исходных пользовательских настроек в моем тестировании.

Теперь возможно, что я что-то упускаю полностью, но ...

Я могу поймать ПРОСТО исполняемый файлзапустить его посмотреть настройки по умолчанию.Затем запустите его с различными пользовательскими настройками переключателей, см. Соответствующие настройки.Запустите его снова без переключателей и посмотрите те же настройки пользователя, но в каталоге с исполняемым файлом нет ни файла app.config, ни какого-либо другого файла.Кстати, ничего не было сделано встроенным ресурсом.

Итак, наконец, на мой вопрос:

Мне интересно, где, черт возьми, эти значения сохраняются?

1 Ответ

1 голос
/ 23 декабря 2011

Проверить локальный каталог приложений (C:\Documents and Settings\USERNAME\Local Settings\Application data\YOURPROJECTNAME\YOURASSEMBLY\ASSEMBLYVERSION\YOURFILE.config).Также обратитесь к MSDN , особенно к пункту Settings File Locations в разделе Settings Persistence.

...