在app.config中更新密钥c#

时间:2017-03-22 09:13:41

标签: c#

我在互联网上引用的例子来改变app.config中的设置,下面是我的代码

string startupPath = AppDomain.CurrentDomain.BaseDirectory.Replace(@"\bin\Debug", "")+ "App.Config";
                Configuration config = ConfigurationManager.OpenExeConfiguration(startupPath);
                config.AppSettings.Settings.Remove("MaintainBackup");
                config.AppSettings.Settings.Add("MaintainBackup", "No");
                config.Save(ConfigurationSaveMode.Minimal);

问题是,它没有更新app.config中的键值(在根目录中)
但是当我使用

  Configuration config = ConfigurationManager.OpenExeConfiguration(Application.ExecutablePath);


它更新bin文件夹中的WinApp.vshost.exe.Config。

问题1。] - 我的应用程序正在选择哪个配置文件?

根目录中的App.config或bin文件夹中的WinApp.vshost.exe.Config

问题2.]如果它是根目录中的App.config而不是更新键值的原因

1 个答案:

答案 0 :(得分:1)

我会尝试在混乱中做出一些命令:

这里混合了两个概念:

  1. App.Config vs AppName.exe.config
  2. vshosts
  3. App.Config 是一个开发时间文件,在编译后它将变为AppName.exe.config,并且您的应用程序将在运行时使用此文件。

    vshosts.exe 是Visual Studio的主机文件,旨在通过visual studio进行调试时提供更好的性能。

    因此,调试应用程序名称时将是AppName.vshosts.exe,因此将使用的配置文件将是AppName.vshosts.exe.config