我的App.Config文件没有保存我修改的任何内容

时间:2009-08-15 20:20:57

标签: c# app-config

这是我的代码:

public void VerifyIfFirstTimeRun()
    {
        if (System.Configuration.ConfigurationSettings.AppSettings["FirstTimeRunning"] == "true")
        {
            //Do bla bla bla
            //Then do bla bla bla
            System.Configuration.ConfigurationSettings.AppSettings["FirstTimeRunning"] = "false";     
        }            
    }

问题是,我正在使用F5键测试它,它启动并确定使用断点显示它确实进入If条件,但是当我“停止”应用程序并再次按F5时它会启动在If Condition AGAIN中。这是标准的操作程序吗?

如果是这样,我该如何测试它是否有效?

3 个答案:

答案 0 :(得分:4)

我不确定你应该期望这样来保存;但是,您可以在用户的上下文中设置一个设置文件(在这种情况下为bool),该文件通过{{1}保存(当您要求时) }。

答案 1 :(得分:4)

这违背了App.config文件用于的精神......但要回答你的问题,你需要做System.Configuration.Configuration.Save()。

编辑:
App.config通常用于配置数据库连接,提供程序等。通常在安装时设置一次。建议用户设置进入单独的配置文件user.config。有关说明,请参阅this

编辑:
System.Configuration.Configuration上课。

注意 - 现在我已经阅读了您使用这些设置的原因,我可以提出另一种方法吗?您应该只检查文件是否存在:

if (!File.Exists("thefilepath"))
{
    AlertUserOfMissingFile();
    ChooseNewFile();
}

无论如何,这样更安全,因为将设置设置为true并不一定意味着文件就在您认为的位置。

答案 2 :(得分:1)

我不建议您为此目的使用App.settings。 看看这篇文章 Settings in C#

  1. 在解决方案资源管理器中,展开项目的“属性”节点。
  2. 在“解决方案资源管理器”中,双击要在其中添加新设置的.settings文件。此文件的默认名称为Settings.settings。
  3. 在“设置”设计器中,为您的设置设置“名称”,“类型”,“范围”和“值”。每行代表一个设置。图1显示了Settings设计器的一个示例。
  4. 如果要在应用程序会话之间保留对用户设置的更改,请调用Save方法,如以下代码所示:

    Properties.Settings.Default.Save();