我正在c#中创建一个Windows应用程序,其中我添加了一个文件作为app.config文件。我在该文件中编写了一些代码
<appSettings>
<add key ="FlagForArchiving" value="true"/>
</appSettings>
在'program.cs'文件中,我将此值读为
ConfigurationSettings.AppSettings["FlagForArchiving"].ToString();
在本地机器上,我可以从配置文件中检索值,但每当我构建该应用程序并在任何其他机器上运行时,我都无法从配置文件中读取值。我正在尝试在Windows 7上运行我的应用程序。请帮助我谢谢你。
答案 0 :(得分:1)
app.config
会重命名为<MyProgramName>.exe.config
。当您的程序运行时,它将查找<MyProgramName>.exe.config
个文件,而不是app.config
。
您需要将重命名的文件(<MyProgramName>.exe.config
)与您的程序一起部署。
在您的情况下,您需要复制OBViewer.exe
,OBViewer.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());
}