我以为我知道这一点,但今天又被证明是错误的-再次。
运行VS2008,.NET 3.5和C#。我使用默认值将用户设置添加到“属性设置”选项卡,然后使用以下代码阅读它们:
myTextBox.Text = Properties.Settings.Default.MyStringProperty;
然后,在用户在选项对话框中编辑值之后,我将其保存为:
Properties.Settings.Default.MyStringProperty = myTextBox.Text; Properties.Settings.Default.Save();
我的问题是,这个新值保存在哪里?可执行文件目录中的MyApp.exe.config文件未更新,但仍包含默认值。另外,据我所知,该目录中的其他文件也没有更新!但是,当程序读回值时,它将获得更改后的值,因此我知道它已保存在某处…
这不仅是学术上的,我需要能够在今天早晨手动编辑值,并在找不到任何正在变化的东西时陷入困境。
为了使用Windows的较新版本的策略,该策略默认情况下仅允许对Program Files文件夹进行读取访问(除非您提示使用UAC进行提升,但这是另一个主题…),您的应用程序将在%userprofile%\appdata\local或下有一个设置文件夹%userprofile%\Local Settings\Application Data具体取决于用户所运行的Windows版本。如果您存储所有用户的设置,则它们将位于所有用户配置文件下C:\users或C:\Documents and Settings所有用户配置文件的对应文件夹中(例如:)C:\users\public\appdata\local。
%userprofile%\appdata\local
%userprofile%\Local Settings\Application Data
C:\users
C:\Documents and Settings
C:\users\public\appdata\local