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

C# 从app.config文件读取值时出现问题,c#,windows-7,build,app-config,windows-applications,C#,Windows 7,Build,App Config,Windows Applications,我正在用c#制作一个windows应用程序,其中我添加了一个文件app.config file <appSettings> <add key ="FlagForArchiving" value="true"/> </appSettings> 在本地计算机上,我可以从配置文件中检索值,但每当我构建该应用程序并在任何其他计算机上运行时,我都无法从配置文件中读取值。我正在尝试在windows 7上运行我的应用程序。请帮助我。提前感谢。

我正在用c#制作一个windows应用程序,其中我添加了一个文件app.config file

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

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

并且app.config文件存在于其他计算机上? 在阅读之前,检查它是否存在

您得到的异常显示了不正确的内容:“FileNotFoundException”

编辑 这是正确的方法

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

另一台计算机上是否存在app.config文件? 在阅读之前,检查它是否存在

您得到的异常显示了不正确的内容:“FileNotFoundException”

编辑 这是正确的方法

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

生成时,
app.config
将重命名为
.exe.config
。当程序运行时,它将查找该
.exe.config
文件,而不是
app.config

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

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


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

app.config
在构建时被重命名为
.exe.config
。当程序运行时,它将查找该
.exe.config
文件,而不是
app.config

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

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



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

似乎是权限问题。但你能提供完整的例外细节吗?@Polity-他在电话里什么也没说app@Polity:链接中的问题特定于WP7上的配置,但OP的操作系统是Windows 7。因此不是重复的。@Dany:OBViewer.exe.config实际上是您生成的app.config文件。OBViewer.vshost.exe.config是IDE为协助调试而创建的文件。@Dany:这个类自.Net 2.0以来就存在,所以这可能不是问题所在。将项目中的引用添加到
System.Configuration
,然后尝试使用
System.Configuration.ConfigurationManager
类。您可能缺少使用System.Configuration的
指令…似乎是权限问题。但你能提供完整的例外细节吗?@Polity-他在电话里什么也没说app@Polity:链接中的问题特定于WP7上的配置,但OP的操作系统是Windows 7。因此不是重复的。@Dany:OBViewer.exe.config实际上是您生成的app.config文件。OBViewer.vshost.exe.config是IDE为协助调试而创建的文件。@Dany:这个类自.Net 2.0以来就存在,所以这可能不是问题所在。将项目中的引用添加到
System.Configuration
,然后尝试使用
System.Configuration.ConfigurationManager
类。您可能缺少使用System.Configuration的
指令…-1 for
App.Config
将永远不存在于计算机上。它被称为
.exe.config
!他称之为app.config。这就是我用这根绳子的原因。如果我用别的东西,我只会弄糊涂him@masterchris_99当前位置这并不意味着你不能纠正他。相反,你给出了另一个不准确的陈述,这实际上增加了混乱!可以使用messagebox访问该值吗?对不起,我不知道他怎么处理这个值。我希望这不是错误的!我不会这样做的。我假设app.config文件存在,如果不存在,就让它爆炸。文件应始终存在。
App.Config
的-1在计算机上永远不存在。它被称为
.exe.config
!他称之为app.config。这就是我用这根绳子的原因。如果我用别的东西,我只会弄糊涂him@masterchris_99当前位置这并不意味着你不能纠正他。相反,你给出了另一个不准确的陈述,这实际上增加了混乱!可以使用messagebox访问该值吗?对不起,我不知道他怎么处理这个值。我希望这不是错误的!我不会这样做的。我假设app.config文件存在,如果不存在,就让它爆炸。该文件应始终存在。。。