再次,用户配置文件C#

Geo*_*lva 1 c# configuration-files

我有一个大的配置文件(用户),我需要去正确的位置,并有一些默认值.

由于我有一个安装程序类,我在其中添加了一些参数设置到配置文件,但是在installers文件夹中创建了配置文件.

确保这些默认参数的最佳方法是只写一次,并且位于正确的位置?

Cod*_*uth 6

在app.config中使用默认值的标准方法.例如,这是我用来确保代码在升级之间复制用户设置的每个版本的默认值:

<userSettings>
    <Software.Namespace.Properties.UserSettings>
      <setting name="RequiresUpgrade" serializeAs="String">
        <value>True</value>
      </setting>
    </Software.Namespace.Properties.UserSettings>
  </userSettings>
  <-- .... -->
  <userSettings>
    <Software.Namespace.Properties.UserSettings>
      <setting name="RequiresUpgrade" serializeAs="String">
        <value>True</value>
      </setting>
    </Software.Namespace.Properties.UserSettings>
  </userSettings>
</configuration>
Run Code Online (Sandbox Code Playgroud)

您需要将.settings文件添加到项目中,或转到项目属性 - >设置并从那里配置它们.

用户自己的设置文件的位置通常放在其配置文件中的AppSettings文件夹中.我不确定这是否可以改变,但我似乎记得读出来.

编辑

这里有一些关于它的更多信息:应用程序设置架构

如果您想保持简单,它还会显示以下示例:

[UserScopedSetting()]
[DefaultSettingValue("white")]
public Color BackgroundColor
{
    get
    {
        return ((Color)this["BackgroundColor"]);
    }
    set
    {
        this["BackgroundColor"] = (Color)value;
    }
}
Run Code Online (Sandbox Code Playgroud)

这看起来像使用这个(引用)时非常重要:

对于复制到本地计算机上的基于Windows窗体的应用程序,app.exe.config将驻留在与应用程序主可执行文件的基目录相同的目录中,user.config 将驻留在Application.LocalUserAppDataPath指定的位置财产.对于通过ClickOnce安装的应用程序,这两个文件都将驻留在%InstallRoot%\ Documents and Settings\username\Local Settings下的ClickOnce数据目录中 .

如果用户启用了漫游配置文件,这些文件的存储位置会略有不同,这使用户可以在使用域中的其他计算机时定义不同的Windows和应用程序设置.在这种情况下,ClickOnce应用程序和非ClickOnce应用程序都将其app.exe.config和user.config文件存储在%InstallRoot%\ Documents and Settings\username\Application Data下.