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

Edw*_*uay 46 c# wpf settings

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

替代文字http://i45.tinypic.com/24xdmir.png

在我的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>
Run Code Online (Sandbox Code Playgroud)

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

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);
}
Run Code Online (Sandbox Code Playgroud)

这给了我这个输出:

one
two
three
four
five
six
seven
added in code
Run Code Online (Sandbox Code Playgroud)

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

one
two
three
four
five
six
seven
added in code
added in code
Run Code Online (Sandbox Code Playgroud)

但是我再次查看我的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>
Run Code Online (Sandbox Code Playgroud)

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

Joã*_*elo 49

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

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

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

C:\Users\[user]\AppData\Local\Microsoft\Example.Settings.CustomCl_Url_3qoqzcgn1lbyw2zx3oz1o3rsw2anyjsn\1.0.0.0
Run Code Online (Sandbox Code Playgroud)

另请注意,它们会在考虑应用程序版本App.config的情况下保存,并且存储的值是新用户使用的默认值.

  • 对于Windows 10,此答案仍然正确,适用于WPF和winforms.因此`user.config`的路径是`<...>\Users\<user>\AppData\Local\<company>\<application> .exe_Url_ <32个随机字符>\<version>`.您的应用程序名称被截断为25个字符,这可能是最大值? (5认同)
  • `&lt;32 个随机字符&gt;`...来自 Microsoft,您好! (2认同)