在我的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
Run Code Online (Sandbox Code Playgroud)
所以在做了一些浏览后,这似乎是由系统上仍然存在的旧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>
Run Code Online (Sandbox Code Playgroud)