重新启动应用程序后,App.config中的更改不会反映出来
我正在使用app.config文件来存储我的应用程序的动态参数。 问题是,当我更改app.config文件中的值并启动应用程序时,它不会从配置文件加载新值。 看起来app.config文件中的值只在编译时被读取并嵌入到exe文件中!
这是我读取配置文件的方式:
public class Helper { static Helper() { Foo = ConfigurationManager.AppSettings["Foo"]; } public static string Foo { get; set; } }
我错过了什么吗?
您确定要更改正确的文件吗? 您不希望更改app.config文件,而是更改
文件,与.exe位于同一目录中
app.config文件是您在ide中编辑的文件,但是当您编译应用程序时,此文件将重命名为
并在编译时复制到输出目录。 在查找默认配置时,.exe会查找与其自身具有相同名称的文件,并带有.config扩展名。
您的类和方法的静态特性可能会导致问题。 也许将它重构为以下内容……
public static class Helper { public static string Foo { get { return ConfigurationManager.AppSettings["Foo"]; } } }
实际上,考虑到它,它并没有帮助你很多,因为ConfigurationManager.AppSettings["Foo"]
已经(有效)是一个静态调用 – 你只是添加另一层抽象,这可能是不需要的。
你做过IISReset吗?
此外,还有Microsoft.NET缓存
WINDOWS\Microsoft.NET\Framework\vXXXXX\Temporary ASP.NET Files.
我会删除这个文件夹的数据。