有很多关于如何在Stack Overflow(以及Internet的其余部分)中读/写app.config的示例。但是答案并不一致,问题和答案通常都没有表明在调试过程中数据可能会保存在app.vshost.config中。
有些答案甚至建议使用XMLReader / XMLWriter来执行此操作,不应该是正确的答案,因为为此目的有专门的Configuration
类。
我的测试(下面的代码)显示ConfigurationManager
在调试期间对app.vshost.config
进行读写,在正常运行时对app.config
进行读写。
我理解为什么会这样,但我想找到一种在调试和不调试时读/写配置文件的标准方法。也许这需要反思,也许这需要在两个地方写数据。
无论哪种方式,我都不想让我的测试人员同时查看app.config和app.vshost.config;我想标准化使用配置的所有组件的固定行为(WCF绑定,跟踪,Log4Net等)
非标准实施可能 当应用程序硬编码时发生 配置文件的路径和名称 阅读。然后,在调试期间, 可能会读取错误的配置文件或 更新。
我的工作代码如下(尽管很多人认为它不起作用):
var config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
config.AppSettings.Settings.Remove("AgentID1");
config.AppSettings.Settings.Add("AgentID1", "test12");
config.Save(ConfigurationSaveMode.Full);
答案 0 :(得分:3)
可能最简单的方法是在调试时简单地禁用Visual Studio Hosting过程(Project properties - Debug - uncheck Enable Visual Studio hosting process
)。