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:

  1. Remove the Settings.settings file if exists in Project/Properties/Setting.settings and app.config file
  2. Right click on Properties -> add new Settings.settings file again
  3. Double click on Settings.settings file to open
  4. Finally add example value -> Save

The issue is resolved

Другие вопросы по тегам