我有一个大的配置文件(用户),我需要去正确的位置并有一些默认值。
由于我有一个安装程序类,我在其中的配置文件中添加了一些参数设置,但是在installers文件夹中创建了配置文件。
确保这些默认参数只能写入一次并位于正确位置的最佳方法是什么?
答案 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 设置\用户名\应用数据。