С# ошибка: непризнанная секция конфигурации userSettings - остановить чтение программы user.config?

В моем приложении формы С# (созданное в VS2010, с использованием .NET 4.0) я использую параметр приложения для хранения выходного пути.

Ранее этот параметр был настроен с областью пользователя, но мне пришлось изменить его область применения.

После этого я теперь получаю сообщение об ошибке Unrecognized configuration section 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>

Ответ 1

Сегодня я столкнулся с этой ошибкой. Решение состояло в том, чтобы войти в диалог информации об ассамблее свойств проекта и продвигать информацию о сборке и версии файла (например, от 1.0.0.0 до 1.0.1.0), сохранить изменения и перестроить приложение. Это заставит компилятор пересмотреть конфигурацию и заставить приложение воздерживаться от создания и чтения нового файла user.config, соответствующего новой версии, из-за отсутствия пользовательских настроек в новой версии.

Ответ 2

Как приложение App.config выглядело, когда был user.config? Я предполагаю, что вам нужно еще объявить <sectionGroup name="userSettings" ... > способ, которым он был объявлен.

Ответ 3

У меня была такая же проблема. Мне пришлось очистить и перестроить решение. Это решило проблему.

Ответ 4

Вы можете исправить ошибку, перейдя в текущий каталог, в котором сохраняются настройки пользователя для вашего приложения. Это будет в% system%\users\your_user\AppData\Local\Microsoft\YourApp.vshost. ######\version. или удалите файл user.config, очистите свое решение и перестройте все. Это должно решить проблему.