c# error:Unrecognized configuration section userSettings - stop program reading user.config?

ⅰ亾dé卋堺 提交于 2019-12-08 14:41:44

问题


In my c# form application (created in VS2010, using .NET 4.0) I use an application setting to store an output path.

Previously this setting was configured with a user scope, but I had to change its scope to application.

After doing this I now get an Unrecognized configuration section userSettings error on start up of the form (note the program has been executed before with the setting's scope set to user):

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

So after doing some browsing this seems to be caused by the old user.config file still existing on the system, causing the program to read it and throw an error (I'm not sure what the actual underlying problem is). I can also confirm that when I remove the file the problem goes away.

Which brings me to my question, is there a way I can change the program so that it won't read the old user.config file, because deleting it manually isn't ideal as the program is already in production on multiple systems.

Apologies if this has been covered, but I couldn't find an answer.

In case it's helpful here's the contents of my App.config file:

<?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:


I ran into this error myself today. The solution was to go into the Assembly Information dialogue of the project's properties and advance the assembly and file version info (ex. 1.0.0.0 to 1.0.1.0), save the changes, and rebuild the application. This will cause the compiler to reevaluate the configuration and cause the application to refrain from creating and reading a new user.config file corresponding to the new version due to there being no user settings in the new version.




回答2:


How did App.config use to look like when there was user.config as well? I'm guessing you need to still declare <sectionGroup name="userSettings" ... > the way it used to be declared.




回答3:


You can fix the error by navigating to the current directory where the user settings are being saved for your app. This will be in %system%\users\your_user\AppData\Local\Microsoft\YourApp.vshost.######\version. or Delete the user.config file, clean your solution, and Rebuild All. This should fix the problem.




回答4:


I had the same issue. I had to clean and rebuild the solution. This solved the issue.



来源:https://stackoverflow.com/questions/13298884/c-sharp-errorunrecognized-configuration-section-usersettings-stop-program-rea

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!