2017-02-22 13 views
0

Я создал приложение с файлом App.config и создал установщик Windows для него через проект мастера установки. Когда я запускаю установленное приложение, он может читать конфигурации безупречно, но когда я вношу изменения и сохраняю конфигурации, приложение просто падает.Чтение App.config отлично работает, но сэкономить на сбое приложения

Вот мой код:

Configuration applicationConfiguration = 
    ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); 

// Reading works just fine. 
LogFilePath = applicationConfiguration.AppSettings.Settings["LogFilePath"].Value; 

LogFilePath = "some string here"; 

applicationConfiguration.AppSettings.Settings["LogFilePath"].Value = LogFilePath; 

// But saving it crashes the application. Only the .Save() line that making it crashed. 
applicationConfiguration.Save(ConfigurationSaveMode.Modified); 
ConfigurationManager.RefreshSection("appSettings"); 

Любая идея, что случилось здесь?

+1

Определить «сбой». Вы видите исключение? Если да, то что такое сообщение? –

ответ

0

из-за docummentation здесь: https://msdn.microsoft.com/en-us/library/ms134265(v=vs.110).aspx возможно пользователя, который работает ваша карта имеет разрешения на чтение, но не имеет права на запись (в файл и каталог)

Чтобы получить объект конфигурации для ресурса, ваших код должен иметь разрешения на чтение для всех файлов конфигурации , из которых он наследует настройки. Чтобы обновить конфигурационный файл, ваш код должен дополнительно иметь права на запись для конфигурационного файла и каталога, в котором он существует.

+0

О, человек, на самом деле я догадался, что это одна из возможностей. И да, вы правы, поскольку я просто видел исключение, исходящее из окна сообщения, которое я создал, только для его отображения: «Произошла ошибка при загрузке файла конфигурации: доступ к пути« временный путь к файлу »запрещен. (Полный путь к файлу конфигурации) ' –

+0

Самые легкие решения - это последнее, что приходит в голову. я просто трачу 2 часа на поиск, почему данные формы не связывались с моделью, и, наконец, увидел, что я забыл определить методы настройки, поэтому я знаю, как это чувствует. – Misiakw