我以为我知道这一点,但今天我被证明是错的--又一次。
运行VS2008、.NET 3.5和C#。我使用默认值将用户设置添加到Properties settings选项卡中,然后使用以下代码读取它们:
myTextBox.Text = Properties.Settings.Default.MyStringProperty;
然后,在用户编辑了选项对话框中的值后,我将其保存为:
Properties.Settings.Default.MyStringProperty = myTextBox.Text;
Properties.Settings.Default.Save();
我的问题是,这个新值保存在哪里?可执行文件目录中的MyApp.exe.config文件未更新,它仍包含默认值。另外,据我所知,该目录中的其他文件也没有更新!但是,当程序读回值时,它会获得更改后的值,所以我知道它保存在某个地方……
这不仅仅是学术上的,我今天早上需要能够手动编辑这个值,当我找不到任何正在改变的东西时,我把自己难住了。
发布于 2009-06-11 17:13:46
为了使用新版本的Windows策略,默认情况下只允许对Program Files文件夹的读访问权限(除非您在UAC中提示提升,但这是另一个主题...),您的应用程序将在%userprofile%\appdata\local
或%userprofile%\Local Settings\Application Data
下有一个设置文件夹,具体取决于您正在运行的Windows版本,用于特定于用户的设置。如果您存储所有用户的设置,那么它们将位于所有用户配置文件(例如:C:\users\public\appdata\local
)的C:\users
或C:\Documents and Settings
下的相应文件夹中。
发布于 2011-08-16 02:59:29
您可以通过编程方式获取路径:
using System.Configuration; // Add a reference to System.Configuration.dll
...
var path = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.PerUserRoamingAndLocal).FilePath;
发布于 2018-06-20 02:48:53
谢谢你给我指明了正确的方向。我发现user.config位于这个庞然大物: c:\users\USER\AppData\Local\COMPANY\APPLICATION.exe_Url_LOOKSLIKESOMEKINDOFHASH\VERSION\user.config.
我不得不在我的应用程序上升级版本,所有的设置似乎都消失了。应用程序使用新版本创建了一个新文件夹,并使用默认设置。花了很长时间才找到文件的存储位置,但随后只需简单地复制和粘贴,即可将设置复制到新版本。
https://stackoverflow.com/questions/982354
复制相似问题