在我的 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>