所以我有一些设置是用户作用域,但由于某些原因,它们没有被保存到.exe.config文件。我做到以下几点:为什么我的应用程序设置不能持久?
Properties.Settings.Default.Email = "[email protected]";
Properties.Settings.Default.Save();
但我期待在debug文件夹中设置文件,它仍然是我在Visual Studio中设置的默认。我做错了吗?
所以我有一些设置是用户作用域,但由于某些原因,它们没有被保存到.exe.config文件。我做到以下几点:为什么我的应用程序设置不能持久?
Properties.Settings.Default.Email = "[email protected]";
Properties.Settings.Default.Save();
但我期待在debug文件夹中设置文件,它仍然是我在Visual Studio中设置的默认。我做错了吗?
用户设置是特定于用户的,因此它们不会被保存回系统范围的.exe.config文件。
从LocalSettingsProvider
文档:
应用范围设置和 默认的用户范围设置存储在一个名为 application.exe.config文件,该文件是在同一目录下创建 作为 可执行文件。应用程序 配置设置是只读的。 特定用户数据存储在名为
username.config
的文件 中,存储在 用户的主目录下。
所以对于一个UserSettingsTest应用刚刚从VS我结束了的路径调试器(因此vshost位)下运行:内根据应用数据保存
C:\Users\Jon\AppData\Local\UserSettingsTest
\UserSettingsTest.vshost.e_Url_pdqoppugkz1vaawbhwkkcu5ibxpi2fgu
\1.0.0.0\user.config
所有的用户范围设置指示您的应用程序版本和名称的文件夹。
您可以在“应用程序设置”对话框中单击“同步”来查看这些文件夹。
在Vista中一般:
这样做的话,由于与当前用户和UAC的相关设置。在Vista中,您甚至可以看到即使应用程序范围内的设置也不存储在配置文件中。
[公司名称]和[产品名称]来自您的装配信息设置。
如果您的程序集信息设置为自动生成任何版本号(1.0。*),那么每次调试应用程序时,版本号都会有所不同,因此每次都会创建一个新文件。
如果这是你需要的设置文件执行升级的情况:执行升级打完
Properties.Settings.Default.Upgrade()
您还可以通过默认设置的NeedsUpgrading
设置以true
并将其设置为false每次启动应用程序时不更改版本号的最终用户将不会一直升级
我有WinXP,但在C:\ Documents and Settings \ Ryan \中没有看到任何此类文件或文件夹。应用数据。这是正确的地方吗? – ryeguy 2009-06-28 19:49:20
恩,不知道在XP上。将在早上尝试。 – 2009-06-28 20:45:39