做一个小程序的时候用了app.config文件
然后运行的时候用户可以进行一些选择设置,然后这些设置会被保存到config文件里
下次运行的时候读取config文件
实际运行起来没有发现问题,但是检查config文件却发现只有最初设置的内容比如下面这样
   <setting name="password" serializeAs="String">
    <value />在保存完之后config文件内容仍旧保持不变
但是在程序中读取password值却可以正确地读出来请问这是为什么?
难道windows有自动把app.config拷贝到哪里去使用么?

解决方案 »

  1.   

    应该是没有保存 修改后一定要记得保存!
    Properties.Settings.Default.Save();
    Properties.Settings.Default.Reload();请实用Settings.settings存储
      

  2.   

    app.Config 在生成后被压缩到EXE程序里.
    如果你需要改动配置文件 再建立个配置文件放外面把..
      

  3.   

    你打开的是哪个配置文件啊?
    不是程序里的那个 应该是bin文件夹中的那个
    名称是 程序名.exe.config
      

  4.   

     <setting name="password" serializeAs="String"> 
        <value />好像标签不对吧?是不是属性选错了?
      

  5.   

    会有这种事?
    发布后的config是应用程序名+config你找一下.
      

  6.   

    对的,我写一个配置文件的时候修改appconfig的值,值是变了,但是配置文件却没有变,
    无奈最好单独用一个xml文件来保存
      

  7.   

    还有一个办法就是先删除掉该节点,再重新插入,如:
    Configuration config.....
    config.AppSettings.Settings.Remove("节点名称"); 
    config.AppSettings.Settings.Add("节点名称", "值"); 
    config.Save(); 你这样试试行不行
      

  8.   

    谢谢大家,我竟然自己查到原因了OTL属性设定的时候我选的是user,所以使用Properties.Settings.Default.Save()之后,
    根据用户不同windows会把config文件另外保存保存的地方如下:
    C:\Documents and Settings\UserName\Local Settings\Application Data\CompanyName\(appdomainname)_(eid)_(hash)\1.0.0.0\user.config如果选application似乎就不会这样,稍后再试,先过来结贴=v=
    给好心的大家加分XD
      

  9.   

      <setting name="password" serializeAs="String"> 
        <value /> 这标签有问题。App.config的属性是有比较固定的格式的,
    一般是
    <add key="" value="" />
      

  10.   

    其实,我在这个帖里有相关的说明:
    http://topic.csdn.net/u/20090114/09/1c6425ef-b2af-4fae-927f-94f680a2e8ee.html