C# 应用程序配置修改未反映在代码中

C# 应用程序配置修改未反映在代码中,c#,winforms,app-config,C#,Winforms,App Config,我在appconfig文件中有一个appsetting部分 <appSettings> <add key="DayTime" value="08-20"/> <add key="NightTime" value="20-08"/> </appSettings> 为什么会这样?试试这个: string strDayTime = ConfigurationManager.AppSettings["DayTime"]; Configu

我在appconfig文件中有一个appsetting部分

<appSettings>    
  <add key="DayTime" value="08-20"/>
  <add key="NightTime" value="20-08"/>
</appSettings>
为什么会这样?

试试这个:

string strDayTime = ConfigurationManager.AppSettings["DayTime"];

ConfigurationManager.AppSettings.Set("DayTime", "11-20");

strDayTime = ConfigurationManager.AppSettings["DayTime"];
strDayTime变量的值在两行上都会更改。

请尝试以下操作:

string strDayTime = ConfigurationManager.AppSettings["DayTime"];

ConfigurationManager.AppSettings.Set("DayTime", "11-20");

strDayTime = ConfigurationManager.AppSettings["DayTime"];

strDayTime变量的值在两行上都会更改。

app.config会被缓存,这些更改将在重新启动应用程序时反映出来。请参见

app.config被缓存,这些更改将在重新启动应用程序时反映出来。请看

我有自己的答案。只需刷新
appSettings
部分即可

ConfigurationManager.RefreshSection("appSettings");

我有自己的答案。只需刷新
appSettings
部分即可

ConfigurationManager.RefreshSection("appSettings");

在运行时更新期间,
app.config
文件中的
AppSetting部分
未得到反映的原因如下:

  • 当您添加一个新的app.config文件时,它实际上会在本地系统中创建一个文件
  • 编译它时,实际上它会在
    Debug/Release
    文件夹中创建必要的文件,包括
    .Exe
    文件;取决于构建模式
  • 成功构建后,它还会生成一个
    .config
    文件,看起来像
    YourApplicationName.exe.config
    ,它在原始app.config文件中保存相同的条目。而
    .Exe
    始终引用此文件
  • 因此,每当您在运行时编辑
    app.config
    时,它实际上会更新文件,但在
    YourApplicationName.exe.config
    文件中不会更新更改,因为它尚未重新生成

因此,每次您都需要重新构建应用程序以反映更改。

在运行时更新过程中,
app.config
文件中的
AppSetting部分
未得到反映的原因如下:

  • 当您添加一个新的app.config文件时,它实际上会在本地系统中创建一个文件
  • 编译它时,实际上它会在
    Debug/Release
    文件夹中创建必要的文件,包括
    .Exe
    文件;取决于构建模式
  • 成功构建后,它还会生成一个
    .config
    文件,看起来像
    YourApplicationName.exe.config
    ,它在原始app.config文件中保存相同的条目。而
    .Exe
    始终引用此文件
  • 因此,每当您在运行时编辑
    app.config
    时,它实际上会更新文件,但在
    YourApplicationName.exe.config
    文件中不会更新更改,因为它尚未重新生成

因此,每次您需要重新构建应用程序以反映更改。

酷,学到了今天的新东西。但我在想什么时候它会有实际的用处。很酷,今天学到了新东西。但我正试图考虑它何时实际有用的场景。@phillyd它只适用于您的应用程序的发布版本。@phillyd它只适用于您的应用程序的发布版本。绞尽脑汁了几个小时……非常感谢!我绞尽脑汁好几个小时了…非常感谢!