从app.config文件读取值时出现问题

时间:2011-11-17 07:06:19

标签: c# windows-7 build app-config windows-applications

我正在c#中创建一个Windows应用程序,其中我添加了一个文件作为app.config文件。我在该文件中编写了一些代码

    <appSettings>
       <add key ="FlagForArchiving" value="true"/>
    </appSettings>

在'program.cs'文件中,我将此值读为

ConfigurationSettings.AppSettings["FlagForArchiving"].ToString();

在本地机器上,我可以从配置文件中检索值,但每当我构建该应用程序并在任何其他机器上运行时,我都无法从配置文件中读取值。我正在尝试在Windows 7上运行我的应用程序。请帮助我谢谢你。

2 个答案:

答案 0 :(得分:1)

在构建时,

app.config会重命名为<MyProgramName>.exe.config。当您的程序运行时,它将查找<MyProgramName>.exe.config个文件,而不是app.config

您需要将重命名的文件(<MyProgramName>.exe.config)与您的程序一起部署。

在您的情况下,您需要复制OBViewer.exeOBViewer.exe.config以及OBViewer.exe依赖的任何其他文件(例如,调试/发布目录中的其他.dll程序集)。

顺便说一下,这个重命名的文件通常被称为“app.config”,即使它没有相同的文件名。

答案 1 :(得分:-1)

并且app.config文件存在于另一台机器上? 在阅读之前检查它是否存在

你得到的例外说不正确:“FileNotFoundException”

修改 这是正确的方法!

if (File.Exists(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile))
{
    MessageBox.Show(ConfigurationSettings.AppSettings["FlagForArchiving"].ToString());
}