c#错误:无法识别的配置部分userSettings - 停止程序读取user.config?

时间:2012-11-08 22:22:29

标签: c# app-config user.config

在我的c#表单应用程序(在VS2010中使用.NET 4.0创建)中,我使用应用程序设置来存储输出路径。

以前,此设置配置了用户范围,但我必须将其范围更改为应用程序。

执行此操作后,我现在在启动表单时遇到无法识别的配置部分userSettings 错误(请注意,在将设置的范围设置为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

所以在做了一些浏览之后,这似乎是由系统上仍然存在的旧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 个答案:

答案 0 :(得分:31)

我今天遇到了这个错误。解决方案是进入项目属性的程序集信息对话框,并推进程序集和文件版本信息(例如1.0.0.0到1.0.1.0),保存更改并重建应用程序。这将导致编译器重新评估配置并导致应用程序因新版本中没有用户设置而避免创建和读取与新版本对应的新user.config文件。

答案 1 :(得分:7)

当有user.config时,App.config是如何使用的? 我猜你还需要声明<sectionGroup name="userSettings" ... >以前的声明方式。

答案 2 :(得分:2)

您可以通过导航到当前目录来保存该错误,该目录将为您的应用保存用户设置。这将位于%system%\ users \ your_user \ AppData \ Local \ Microsoft \ YourApp.vshost。###### \ version中。 要么 删除user.config文件,清理您的解决方案,然后重新生成所有文件。这应该可以解决问题。

答案 3 :(得分:0)

我有同样的问题。我不得不清理并重建解决方案。这解决了这个问题。

答案 4 :(得分:0)

我遇到了同样的问题,我找到了解决方案:

  1. 删除 Settings.settings 文件(如果存在于 Project/Properties/Setting.settingsapp.config 文件
  2. 右键单击属性 -> 再次添加新的Settings.settings 文件
  3. 双击 Settings.settings 文件打开
  4. 最后添加示例值 -> 保存

问题已解决