Когда создается app.config, когда app.exe.config и какая разница
Мы создали приложение WinForms и сохранили некоторые конфигурации через класс ConfigurationManager. Чтобы сохранить информацию, я использую
Configuration pConfig = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
pConfig.AppSettings.Settings.Add("updates", szUpdatesURL);
pConfig.Save(ConfigurationSaveMode.Modified);
Проблема в том, что в некоторых случаях приложение создает файл .config "appname", а в других случаях - "appname".exe.config.
Здесь я должен отметить, что файл конфигурации не отправлен по умолчанию, поскольку он не всегда требуется.
Конфигурации сохраняются при первом запуске программы. Это вызвало у нас проблему, и я не могу указать случаи, когда тот или другой создается.
Я выполнил тесты на одном компьютере с тем же самым .exe, и я получаю оба результата. Что здесь происходит?
В чем разница между этими двумя, и как я могу указать, какой из них нужно создать?
Большое спасибо
Ответы
Ответ 1
"appname.exe.config" автоматически создается для вас при компиляции приложения. Это файл, который должен быть распространен среди ваших конечных пользователей (вместе с файлом exe, конечно). Настройки, установленные в appname.config, переносятся на appname.exe.config.
They are essentially the same files
. Причина appname.config существует, потому что, когда исполняемый файл запускается, его конфигурационный файл является простым исполняемым именем с суффиксом .config
. Однако, если имя исполняемого файла изменилось, вам придется вручную изменить имя файла exe.config. Поэтому, автоматически переименовывая во время компиляции, app.config может изменить его имя на файл newappname.exe.config, и CLR все равно его поднимет. Вероятно, вы обнаружите, что файл appname.exe.config создается в каталоге bin.
Я надеюсь, что это понятно:) Ссылки ниже могут объяснить это немного глубже.
Там есть хорошее объяснение here
. Еще одно хорошее чтение - CodePlex
.