控制台应用程序:每个configuration文件只允许有一个<configSections>元素,如果存在,则必须是根<configuration>元素的第一个子元素
我正在开发控制台应用程序,当我运行.exe文件,我得到下面的错误。
system.Configuration.ConfigurationErrorsException:每个configuration文件只允许有一个
<configSections>
元素,如果存在,则必须是根<configuration>
元素的第一个子元素。
App.config文件是
<configuration> <startup useLegacyV2RuntimeActivationPolicy="true"> <supportedRuntime version="v4.0"/> </startup> <configSections> <section name="Reva.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" /> </configSections> -- -- -- --
如果我删除了
<startup useLegacyV2RuntimeActivationPolicy="true"> <supportedRuntime version="v4.0"/> </startup>
那么它的工作很好。 请任何人可以帮我吗?
你真的应该只是阅读错误信息。 它包含了解决问题所需的一切:
configSections
必须是根元素的第一个子元素:
<configuration> <configSections> <section name="Reva.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" /> </configSections> <startup useLegacyV2RuntimeActivationPolicy="true"> <supportedRuntime version="v4.0"/> </startup>
错误的web.config文件
<?xml version="1.0" encoding="utf-8"?> <configuration> <connectionStrings> <add name="SQLConnect" connectionString="Data Source=SAHIL; Initial Catalog=Demo; Integrated Security=SSPI" providerName="System.Data.SqlClient" /> </connectionStrings> <configSections> <sectionnamesectionname="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> </configSections> : : : : : : : </configuration>
错误是
为了解决这个错误,我重新排列了这些元素,并且修正了错误。
我知道,必须是第一个子元素,并更改configuration文件使问题消失。 但是,configuration文件正在自动生成,所以每次发生错误返回,因为它正在生成不正确…