Подтвердить что ты не робот

Когда создается 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, и я получаю оба результата. Что здесь происходит?

В чем разница между этими двумя, и как я могу указать, какой из них нужно создать? Большое спасибо

4b9b3361

Ответ 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.