Что перезаписывает файл <executble-name> .exe.config с исходным App.config в конце отладки? - PullRequest
1 голос
/ 25 марта 2011

В Visual Studio 2010, что перезаписывает <имя исполняемого файла> .exe.config и заменяет его версией файла App.config после завершения отладки?

Это Visual Studio делает это? Есть ли способ включить эту функцию?

private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
           // ... Modify configuration.AppSettings.Settings by 
           // running Add/Remove on a couple of keys.

           // Write out the <executable-name>.exe.config file...
           configuration.Save(ConfigurationSaveMode.Modified);

           // Break here and notice that the file has been written to.
           ConfigurationManager.RefreshSection("appSettings"); 
 }

Пример - Запись настроек при выходе

Обратите внимание, где я ломаю в конце метода обработчика _FormClosing.

1 Ответ

2 голосов
/ 26 марта 2011

Метод Save () сохраняет только те настройки, для которых Scope является пользователем, а не Application.Эти значения параметров записываются в файл user.config, который хранится в подкаталоге c: \ users \ name \ appdata.Трудно найти, имя подкаталога является хешем, основанным на имени и версии приложения.

Как это должно работать, программа обычно не имеет доступа для записи в app.exe.Конфигурационный файл после его развертывания.UAC запрещает программе писать файлы в c: \ program files.

Другими словами, ваш app.exe.config не должен изменяться.Посмотрите на это с помощью блокнота, чтобы убедиться в этом.

...