2

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

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

在“program.cs”文件中,我将此值读取为

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

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

4

2 回答 2

1

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

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

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

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

于 2011-11-17T07:30:53.017 回答
-1

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

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

编辑 这里是正确的方法!

if (File.Exists(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile))
{
    MessageBox.Show(ConfigurationSettings.AppSettings["FlagForArchiving"].ToString());
}
于 2011-11-17T07:10:38.190 回答