【问题标题】:Loading app.config file in Release在 Release 中加载 app.config 文件
【发布时间】:2026-02-20 02:30:01
【问题描述】:

在我的 Visual Studio 2008 项目中,我添加了 app.config 文件,其中我以 xml 格式存储了一些应用程序数据。

我用这样的代码读取这些数据:

string somedata =    ConfigurationSettings.AppSettings["somedatakey"].ToString();

当我在 Visual Studio 中启动应用程序时,它可以工作。但是如果我尝试运行 exe 文件(发布或调试)我会得到错误(如果我调试它会在上面的行中断):

对象引用未设置为 对象的实例。

文件 app.config 不在文件夹内。

【问题讨论】:

  • 您的 exe 的确切名称是什么,以及您的配置文件的确切名称是什么?另外,在installtion文件夹中,你有哪些带有config后缀的文件?
  • 为避免错误并改为使用空值,请改为:string somedata = ConfigurationSettings.AppSettings["somedatakey"] + "";

标签: c#


【解决方案1】:

app.config 文件是否与您的 exe 位于同一文件夹中?如果没有,请复制到那里。

在 Visual Studio 中开始调试会构建所有内容,并将输出(包括 app.config)复制到输出文件夹,然后从那里开始。

【讨论】:

    【解决方案2】:

    @Jullin:当您通过按 F5 从 Visual Studio 编辑器运行项目时,CLR 选择 app.config 文件以读取数据,但是当您想从 .exe(bin/debug 或 bin/release)运行项目时,请 clr 读取 applicationName .exe.config,您必须在调试或发布或您访问 applicationName.exe 的任何文件夹中拥有它。

    就像我有一个名为“WindowsFormApplication”的窗口应用程序一样,当我在发布文件夹中成功构建它时,我有 WindowsFormApplication.exe 和 WindowsFormApplication.exe.config 以及其他一些文件。所以请确保您成功发布项目并且您的发布文件夹必须包含文件。

    【讨论】:

      【解决方案3】:

      从 Exe 运行时,确保您添加的 app.config 应该在同一目录中

      【讨论】: