3

我正在使用 2.0 .Net 框架在 C# Visual Studio 2010 中编写一个小程序。我正在尝试从 App.config 文件中读取值。我的配置文件看起来像这样......

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
      <section name="MyApp.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
    </sectionGroup> 
  </configSections>
  <applicationSettings>
    <add key="Path" value ="C:\Program Files\MyApp\bin\" />
    <add key="UserName" value="UserName" />
    <add key="Pword" value="Password" />
  </applicationSettings>
</configuration>

然后在我的代码中:

path = ConfigurationManager.AppSettings["Path"];

我收到运行时错误“配置系统无法初始化”。从我读过的内容来看,configSection 必须是文件中的第一个,但我已经这样做了,但仍然出现错误。

4

6 回答 6

9

放在<configSections>前面<appSettings>,它应该可以工作

<configuration>
<configSections>
...
</configSections>
<appSettings>
...
</appSettings>
</configurations>
于 2013-05-06T09:15:45.550 回答
1

我已经解决了,标签applicationSettings应该被称为appSettings. 然后我可以摆脱sectionGroup只留下这个的标签。

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
  </configSections>
  <appSettings>
    <add key="Path" value="C:\Program Files\MyApp\bin\" />
    <add key="UserName" value="username" />
    <add key="Pword" value="password" />
  </appSettings>
</configuration>
于 2012-05-23T00:25:56.913 回答
0

可能是配置文件已损坏且无法读取。删除现有的 .Config 文件并创建一个具有相同名称和设置的新文件。

通过使用相同的做法,我已经多次解决相同的问题。

         <add key="Path" value ="C:\\Program Files\\MyApp\bin\\" />

如果您想在代码中使用多个路径,请使用组合路径

于 2012-05-22T06:12:16.987 回答
0

我可能在这个问题上很遥远,你应该避开你的反斜杠。即C:\Program Files\MyApp\bin\变成C:\\Program Files\\MyApp\\bin\\

于 2012-05-22T05:52:53.767 回答
0

请检查下图...您需要将密钥添加到标签中。

在此处输入图像描述

于 2013-05-06T09:21:19.400 回答
0

我知道这是一个非常晚的添加,但只是想如果它会帮助其他人,为什么不呢。当谈到使用“applicationSettings”时,请注意你不能混合使用“applicationSettings”的“settings”和“appSettings”的“add”,换句话说,你不能拥有

<setting name="Name You choose" serializeAs="String">
        <value>True</value>
      </setting>

<add key="Name You choose" value="1000" />

在同一个 App.config 文件中。

于 2016-09-01T10:06:12.940 回答