繁体   English   中英

Properties.Settings.Default 的数据保存在哪里?

[英]Where is the data for Properties.Settings.Default saved?

在我的 WPF 应用程序中,我单击解决方案资源管理器中的Settings.settings并输入一个具有用户范围的StringCollection变量:

替代文字

在我的 app.config 中,我看到它们保存在那里:

<userSettings>
    <TestSettings.Properties.Settings>
        <setting name="Paths" serializeAs="Xml">
            <value>
                <ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
                    <string>one</string>
                    <string>two</string>
                    <string>three</string>
                    <string>four</string>
                    <string>five</string>
                    <string>six</string>
                    <string>seven</string>
                </ArrayOfString>
            </value>
        </setting>
    </TestSettings.Properties.Settings>
</userSettings>

然后我运行我的应用程序并使用以下代码:

StringCollection paths = Properties.Settings.Default.Paths;

Properties.Settings.Default.Paths.Add("added in code");
Properties.Settings.Default.Save();

foreach (var path in paths)
{
    System.Console.WriteLine(path);
}

这给了我这个输出

one
two
three
four
five
six
seven
added in code

再次运行应用程序,它给了我这个输出:

one
two
three
four
five
six
seven
added in code
added in code

但是我再次查看我的app.config ,它仍然具有原始值

<userSettings>
    <TestSettings.Properties.Settings>
        <setting name="Paths" serializeAs="Xml">
            <value>
                <ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
                    <string>one</string>
                    <string>two</string>
                    <string>three</string>
                    <string>four</string>
                    <string>five</string>
                    <string>six</string>
                    <string>seven</string>
                </ArrayOfString>
            </value>
        </setting>
    </TestSettings.Properties.Settings>
</userSettings>

应用程序添加的值在哪里保存?

由于您选择了用户范围,因此它们保存在每个用户配置文件目录中,更具体地说,保存在用户配置文件的AppData文件夹中名为user.config的文件中。

完整路径取决于应用程序。

在没有漫游配置文件和名为Example.Settings.CustomClass的 Windows 窗体应用程序的 Windows 7 中,我得到以下文件夹:

C:\Users\[user]\AppData\Local\Microsoft\Example.Settings.CustomCl_Url_3qoqzcgn1lbyw2zx3oz1o3rsw2anyjsn\1.0.0.0

另请注意,它们的保存考虑了您的应用程序版本,并且App.config中存储的值是用于新用户的默认值。

我在 Win 10 下寻找设置。 如果其他人需要知道,它们不会存储在 Microsoft 的子文件夹中(请参阅上一个答案)。 看看这里:

C:\Users\[user]\AppData\Local\Example\Example...\1.0.0.0\

我偶然发现了一种找到路径的简单方法。

  1. 打开应用程序属性。
  2. 在“应用程序”选项卡下,选择“程序集信息...”。
  3. 更改“公司”的值。 选择确定以保存。
  4. 选择“设置”应用程序属性选项卡。
  5. 选择“同步”(选项卡顶部选项中的第一个按钮)。
    然后,您应该会收到一个 Visual Studio 信息对话框,提示“在以下任何位置均未找到 user.config 文件:”,然后是保存设置的位置列表。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM