再次,用户配置文件C#

时间:2010-03-25 11:50:08

标签: c# configuration-files

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

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

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

1 个答案:

答案 0 :(得分: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>

您需要将.settings文件添加到项目中,或转到项目属性 - &gt;设置并从那里进行配置。

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

<强> 修改

此处有更多相关信息:Application Settings Architecture

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

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

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

  

对于基于Windows窗体的应用程序   复制到本地计算机上,   app.exe.config将驻留在同一个   directory作为基本目录   应用程序的主要可执行文件,   和user.config 将驻留在   由...指定的位置   Application.LocalUserAppDataPath   属性即可。对于已安装的应用程序   通过ClickOnce,这两个   文件将驻留在ClickOnce中   下面的数据目录   %InstallRoot%\ Documents and   设置\用户名\本地设置

     

这些文件的存储位置是   如果用户有,则稍微不同   已启用漫游配置文件,其中   使用户能够定义不同的   Windows和应用程序设置时   他或她正在使用其他电脑   在域内。在这种情况下,两者   ClickOnce应用程序和   非ClickOnce应用程序将具有   他们的app.exe.config和user.config   存储在。下的文件   %InstallRoot%\ Documents and   设置\用户名\应用数据