Файл user.config не создается, но app.config есть?

В моей программе есть несколько настроек, в которых есть область действия пользователя. Однако при запуске программы создается только файл AppName.exe.config, в котором содержатся параметры.

При последующем сохранении параметра во время выполнения он создает файл user.config (который ранее не существовал) в папке AppData/Local/AppName/, но этот файл содержит только сохраненные настройки.

Почему это происходит? Почему он не создает user.config и не использует его при запуске, если он существует?

1 ответ

Решение

Из Архитектуры настроек приложения на MSDN:

  1. Параметры области приложения могут храниться в файлах machine.config или app.exe.config. Machine.config всегда доступен только для чтения, а app.exe.config по соображениям безопасности ограничен только для чтения для большинства приложений.

  2. Пользовательские настройки могут храниться в файлах app.exe.config, в этом случае они рассматриваются как статические значения по умолчанию.

  3. Параметры по умолчанию в пользовательской области хранятся в новом файле user.config, где user - это имя пользователя, выполняющего приложение в данный момент. Вы можете указать значение по умолчанию для пользовательской настройки с помощью DefaultSettingValueAttribute. Поскольку пользовательские параметры часто меняются во время выполнения приложения, user.config всегда доступен для чтения / записи.

Сначала вы видите (как вы назвали) ваши "встроенные настройки", хранящиеся как (то, что Microsoft называет) "статические настройки по умолчанию", заданные пользователем, которые хранятся в app.exe (согласно пункту 2).

И затем, когда вы записываете свои настройки во время выполнения, они рассматриваются как "нестандартные" пользовательские настройки и записываются в user.config (согласно пункту 3), поэтому только тогда вы видите пользователя.config файл создан.

Короче говоря, нет необходимости в файле user.config для каждого пользователя, если параметры области действия пользователя одинаковы (по умолчанию) для всех.

Другие вопросы по тегам