2011-11-17 25 views
2

我在我添加一个文件的app.config file.I已经写在文件中的一些代码问题,同时从app.config文件读取值

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

在“做在C#一个Windows应用程序在Program.cs'文件我读这个值作为

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

在本地机器上,我可以检索配置文件的价值,但每当我构建的应用程序和任何其他机器上运行的话,我不能读取配置文件中的值我试图在Windows 7上运行我的应用程序。请帮助我。提前感谢。

+0

似乎是一个权限问题。但是,你能提供完整的例外细节吗? – Kash

+0

@Polity - 他没有从手机应用程序中说出任何内容 –

+0

@ Polity:链接中的问题特定于WP7上的配置,但OP的操作系统是Windows 7.因此,不是重复的。 – Kash

回答

1

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

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

对于您的情况,您需要复制OBViewer.exeOBViewer.exe.configOBViewer.exe依赖的任何其他文件(例如debug/release目录中的其他.dll程序集)。

顺便说一句,这个重命名的文件通常统称为“的app.config”,即使不具有相同的文件名了。

-1

并且app.config文件存在于另一台机器上? 之前,如果存在的话

你得到的异常说什么不正确读取支票:“FileNotFoundException异常”

编辑 这里是正确的方法!当你建立

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

-1对于'App.Config'永远不会在机器上存在。它被称为' .exe.config'! – Fischermaen

+0

他称之为app.config。那就是我为什么使用这个字符串。如果我使用其他任何东西,我只会把他迷惑到 –

+1

@ masterchris_99:这并不意味着你不能纠正他。相反,你给出了另一个不准确的陈述,这实际上增加了混乱! – Kash