user.config文件没有被创建但是app.config是?

时间:2013-02-18 14:25:34

标签: c# settings user-config

我的程序内置了一些设置,其中都有一个用户范围。但是,当程序启动时,它只会创建包含设置的AppName.exe.config文件。

稍后在运行时保存设置时,它会在AppData / Local / AppName / location中创建user.config文件(以前不存在),但该文件仅包含已保存的设置。

为什么会这样?为什么不创建user.config或在启动时使用它?如果它存在?

1 个答案:

答案 0 :(得分:3)

来自Application Settings Architecture at MSDN

  
      
  1. 应用程序范围的设置可以存储在machine.config或app.exe.config文件中。 Machine.config始终是   只读,而app.exe.config受安全限制   对大多数应用程序只读的注意事项。

  2.   
  3. 用户范围的设置可以存储在app.exe.config文件中,在这种情况下,它们会被视为静态默认值。

  4.   
  5. 非默认用户范围设置存储在新文件user.config中,其中user是当前人员的用户名   执行申请。您可以为用户范围指定默认值   使用DefaultSettingValueAttribute进行设置。因为用户范围   设置经常在应用程序执行期间更改,user.config是   总是读/写。

  6.   

您首先看到的是(您所谓的)您的“内置设置”存储为(Microsoft调用的)“静态默认”用户范围设置,这些设置存储在app.exe中(根据2)。

然后当您在运行时回写设置时,它们被视为“非默认”用户范围设置,并且它们被写入user.config(按照3),因此为什么只有这样你呢?查看创建的user.config文件。

简而言之,只要用户范围的设置对每个人都相同(默认值),就不需要每用户user.config文件。