21

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

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

执行此操作后,我现在在启动表单时收到Unrecognized configuration section 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>
4

5 回答 5

45

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

于 2013-09-04T09:22:58.103 回答
8

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

于 2012-11-08T22:32:06.493 回答
5

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

于 2019-02-06T04:49:02.423 回答
1

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

于 2016-09-15T08:57:03.223 回答
0

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

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

问题已解决

于 2021-06-16T14:02:13.593 回答