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

时间:2009-11-26 15:25:14

标签: c# wpf settings

在我的WPF应用程序中,我点击解决方案资源管理器中的设置。设置,然后输入一个带有用户范围的 StringCollection 变量:< / p>

alt text

在我的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>

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

3 个答案:

答案 0 :(得分:47)

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

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

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

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

另请注意,考虑到应用程序的版本以及App.config中存储的值是新用户使用的默认值,它们会被保存。

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

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

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