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

在我的WPF应用程序中,我单击解决scheme资源pipe理器中的Settings.settings ,然后input具有User范围的StringCollectionvariables:

替代文字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> 

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

 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> 

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

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

完整path取决于应用程序。

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

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

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