C# ошибка: нераспознанный раздел конфигурации userSettings - остановить чтение программы user.config?
В моем приложении C# form (созданном в VS2010 с использованием.NET 4.0) я использую настройки приложения для сохранения пути вывода.
Ранее этот параметр был настроен с пользовательской областью, но мне пришлось изменить его область применения.
После этого я теперь получаю сообщение об ошибке userSettings раздела "Нераспознанная конфигурация" при запуске формы (обратите внимание, что программа была выполнена ранее с областью действия параметра, установленной на пользователя):
InnerException: System.Configuration.ConfigurationErrorsException
Message=Unrecognized configuration section userSettings. (C:\Documents and Settings\Administrator\Local Settings\Application Data\CallCenterForm\CallCenterForm.vshost.exe_StrongName_bplf30wziudnpq0knzaacfuyomd5rv45\1.0.0.0\user.config line 3)
Source=System.Configuration
BareMessage=Unrecognized configuration section userSettings.
Filename=C:\Documents and Settings\Administrator\Local Settings\Application Data\CallCenterForm\CallCenterForm.vshost.exe_StrongName_bplf30wziudnpq0knzaacfuyomd5rv45\1.0.0.0\user.config
Таким образом, после некоторого просмотра это, вероятно, вызвано старым файлом user.config, все еще существующим в системе, в результате чего программа считывает его и выдает ошибку (я не уверен, в чем собственно основная проблема). Я также могу подтвердить, что когда я удаляю файл, проблема исчезает.
Это подводит меня к моему вопросу, есть ли способ изменить программу, чтобы она не читала старый файл user.config, потому что удаление его вручную не является идеальным, так как программа уже работает в нескольких системах.
Извиняюсь, если это было покрыто, но я не мог найти ответ.
В случае, если это полезно, вот содержимое моего файла App.config:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
<section name="CallCenterForm.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</sectionGroup>
</configSections>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0"/>
</startup>
<applicationSettings>
<CallCenterForm.Properties.Settings>
<setting name="saved_output_dir" serializeAs="String">
<value>c:\</value>
</setting>
</CallCenterForm.Properties.Settings>
</applicationSettings>
</configuration>
5 ответов
Я сам столкнулся с этой ошибкой сегодня. Решение состояло в том, чтобы перейти в диалоговое окно "Информация о сборке" свойств проекта и перейти к информации о сборке и версии файла (например, с 1.0.0.0 до 1.0.1.0), сохранить изменения и перестроить приложение. Это заставит компилятор переоценить конфигурацию и заставит приложение воздерживаться от создания и чтения нового файла user.config, соответствующего новой версии, поскольку в новой версии отсутствуют пользовательские настройки.
Как выглядел App.config, когда был также файл user.config? Я предполагаю, что вам нужно еще объявить <sectionGroup name="userSettings" ... >
как это было раньше объявлено.
Вы можете исправить ошибку, перейдя в текущий каталог, в котором сохраняются настройки пользователя для вашего приложения. Это будет в%system%\users\your_user\AppData\Local\Microsoft\YourApp.vshost.######\version. или удалите файл user.config, очистите решение и перестройте все. Это должно решить проблему.
Я была такая же проблема. Я должен был очистить и восстановить решение. Это решило проблему.
I have a same the issue and I found a solution:
- Remove the Settings.settings file if exists in Project/Properties/Setting.settings and app.config file
- Right click on Properties -> add new Settings.settings file again
- Double click on Settings.settings file to open
- Finally add example value -> Save
The issue is resolved