基于Debug模式windows应用程序app.config设置

介绍

 

当我们开发Windows窗体应用程序,我们肯定会利用App.config的。我们可以添加,修改和删除键/值对管理用户首选项。在这里,将会节省你的时间。

演示

这里有一个简单的Windows窗体应用程序来展示如何添加一个密钥对到App.config文件。我建立的Visual Studio 2015年这里面的Windows窗体应用程序。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Configuration;
namespace AppConfig
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        //display current value of Setting1 variable
        private void button2_Click(object sender, EventArgs e)
        {
            //clear first
            label1.Text = "";

            DisplayConfig();
        }

        private void DisplayConfig()
        {
            foreach(string key in ConfigurationManager.AppSettings)
            {
                string value = ConfigurationManager.AppSettings[key];
                label1.Text = label1.Text + " " + key + ": " + value;
                     
            }
        }

        //display current content in App.config appSettings section
        private void button1_Click(object sender, EventArgs e)
        {
            Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);

            config.AppSettings.Settings.Add("ModificationTime", DateTime.Now.ToLongTimeString() + " ");
            config.Save(ConfigurationSaveMode.Modified);

            ConfigurationManager.RefreshSection("appSettings");
        }
    }
}

问题

Visual Studio2015,按F5运行该应用程序。按下按钮,添加时间到App.config中,然后单击显示按钮,在App.config文件的当前值:

 

我们可以看到修改时间加入到App.config中。现在,我们去的bin文件夹这个项目,并找到App.config中。在记事本打开它,你会发现修改时间是不存在的。这里的问题是:我们看到这个时间加入到App.config中,但是当我们打开App.config文件和该键/值对不存在。

发生了什么?

 

回答

它与Visual Studio 2015调试过程有关。当我们按​​F5键并开始调试过程中,Visual Studio创建自己的主机进程。内部项目bin/ debug文件夹,你会看到projectName.vshost和projectName.vshost.exe XML文件。当您运行的Visual Studio IDE中该应用程序,修改时间键/值对放入projectName.vshost.exe xml文件。在您停止调试过程中,缓存被释放,修改时间键/值对从XML文件刷新。所以你不会看到任何改变这个XML文件。

另请注意,调试过程里面,是从来没有使用过projectName.exe.config。所以,如果我们打开projectName.exe.config文件,我们将不会看到任何变化。

两种解决办法:

解决方法一:启动命令行提示符并转到bin\ Debug文件夹。从那里运行演示应用程序。你会看到在App.config中的appSettings部分的修改时间。

解决方法二:选择项目的属性页; 选择调试选项卡,进入底部区域“启用调试器”,取消选中“启用的Visual Studio宿主进程”为下面的截图:

 

希望这可以提示一些时间节省你的未来。如果您有任何意见和反馈,请让我知道。

原文链接http://www.codeproject.com/Tips/1086805/Basics-on-debugging-App-config-for-Windows-Form-Ap#_articleTop

posted @ 2016-03-20 20:15  glly  阅读(2533)  评论(0编辑  收藏  举报