我正在使用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必须是文件中的第一个,但我已经完成了这个并仍然得到错误。
答案 0 :(得分:8)
将<configSections>
放在<appSettings>
之前,它应该可以正常工作
<configuration>
<configSections>
...
</configSections>
<appSettings>
...
</appSettings>
</configurations>
答案 1 :(得分: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>
答案 2 :(得分:0)
我可以离开这个,你应该逃避你的反斜杠。
即C:\Program Files\MyApp\bin\
变为C:\\Program Files\\MyApp\\bin\\
答案 3 :(得分:0)
可能是配置文件已损坏且无法读取。请删除现有的.Config文件并使用相同的名称和设置创建新文件。
通过使用相同的练习,我已经多次解决同样的问题。
<add key="Path" value ="C:\\Program Files\\MyApp\bin\\" />
如果您想在代码中使用多路径,请使用Combine Path
答案 4 :(得分:0)
请检查下图... 您需要将密钥添加到标记中。
答案 5 :(得分:0)
我知道这是一个非常晚的补充,但只是想如果它会帮助别人为什么不。 当谈到使用“applicationSettings”时,请注意你现在不能混合“applicationSettings”的“设置”和“appSettings”的“添加”,换句话说你不能拥有
<setting name="Name You choose" serializeAs="String">
<value>True</value>
</setting>
和
<add key="Name You choose" value="1000" />
在同一个App.config文件中。