App.config中的配置未正确提取

时间:2010-12-17 15:54:12

标签: c# app-config

我正在尝试提取保存到app.config文件的URL,但它返回一个空字符串。有什么想法吗?

string asdf = String.Format("{0}", ConfigurationManager.AppSettings["MemberUrl"]);

配置文件:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <appSettings>
    <add key="ForumUrl" value="http://www.dreamincode.net/forums/xml.php?showforum=" />
    <add key="MemberUrl" value="http://www.dreamincode.net/forums/xml.php?showuser=" />
  </appSettings>
</configuration>

4 个答案:

答案 0 :(得分:8)

如果app.config是类库的一部分,它可能没有正确复制到bin文件夹(如果有的话)。

配置文件必须命名为<exefilename>.config才能被正在运行的应用程序选中。

应用程序项目中的App.config文件(生成exe文件,控制台,WinForms等的文件)将在部署时复制和重命名。或者,如果这是从Web项目执行的,则需要进入web.config。

这有帮助吗?

答案 1 :(得分:3)

您的类库所需的所有配置信息必须位于主项目App.config或web.config中。换句话说,如果您的app.config文件附加到库中,则不会读取它。

转到主应用程序并将相应的键/值添加到其配置文件中。

答案 2 :(得分:3)

Sergio我刚尝试过这是一个控制台应用程序,它运行良好。

我建议它是一个类库;而不是您已将app.config文件添加到的主程序集。

当你进行构建时;查看二进制输出文件夹Debug或Release,在那里你应该看到一个名为yourEXEfilename.config的文件;如果该文件不存在,那么您将无法从上面的代码行获得任何输出。

AppSettings将返回一个NULL字符串。

希望这是有用的 亲切的问候 诺尔

答案 3 :(得分:0)

没有理由不这样做 - 你还有其他相关信息吗? 仅供参考,你不需要String.Forma t你正在做什么,以下是好的

string asdf = ConfigurationManager.AppSettings["MemberUrl"];