繁体   English   中英

Properties.Settings.Default 存储在哪里?

[英]Where are the Properties.Settings.Default stored?

我以为我知道这一点,但今天我再次被证明是错误的。

运行 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%\\appdata\\local%userprofile%\\Local Settings\\Application Data取决于您运行的 Windows 版本,用于特定于用户的设置。 如果您存储所有用户的设置,则它们将位于C:\\usersC:\\Documents and Settings下所有用户配置文件的相应文件夹中(例如: C:\\users\\public\\appdata\\local )。

您可以通过编程方式获取路径:

using System.Configuration;  // Add a reference to System.Configuration.dll
...
var path = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.PerUserRoamingAndLocal).FilePath;

感谢您为我指明正确的方向。 我发现 user.config 位于这个怪物:c:\\users\\USER\\AppData\\Local\\COMPANY\\APPLICATION.exe_Url_LOOKSLIKESOMEKINDOFHASH\\VERSION\\user.config。

我不得不在我的应用程序上升级版本,所有设置似乎都消失了。 应用程序使用新版本创建了一个新文件夹并使用默认设置。 花了很长时间才能找到文件的存储位置,但是只需简单的复制和粘贴即可将设置设置为新版本。

它保存在您的 Documents and Settings\\%user%\\Local Settings\\Application Data......etc 中,在那里搜索名为user.config的文件

然而,位置可能会改变。

我的一个 Windows 服务在 windows server 2016 中作为本地系统登录,我可以在 C:\\Windows\\SysWOW64\\config\\systemprofile\\AppData\\Local\\{您的应用程序名称} 下找到 user.config。

我认为最简单的方法是在 C 驱动器上搜索您的应用程序名称,然后检查 user.config 在哪里

它们保存在YOUR_APP.exe.config ,该文件与YOUR_APP.exe文件保存在同一文件夹中, <userSettings>部分:

   <userSettings>
      <ShowGitlabIssues.Properties.Settings>
         <setting name="SavedUserName" serializeAs="String">
            <value />
         </setting>
         <setting name="SavedPassword" serializeAs="String">
            <value />
         </setting>
         <setting name="CheckSave" serializeAs="String">
            <value>False</value>
         </setting>
      </ShowGitlabIssues.Properties.Settings>
   </userSettings>

这是cs代码:

public void LoadInfoLogin()
{
    if (Properties.Settings.Default.CheckSave)// chkRemember.Checked)
    {
        txtUsername.Text = Properties.Settings.Default.SaveUserName;
        txtPassword.Text = Properties.Settings.Default.SavePassword;
        chkRemember.Checked = true;
    }
...

如果您使用 Windows 10,这是目录:

C:\\Users<用户名>\\AppData\\Local\\

+

<ProjectName.exe_Url_somedata>\\1.0.0.0<filename.config>

用户特定的设置保存在该应用程序的用户应用程序数据文件夹中。 查找user.config文件。

我不知道您期望什么,因为用户通常一开始甚至没有对可执行目录的写访问权限。

对于任何想知道 Microsoft Store 中应用程序设置在哪里的人来说,它们要么位于 WindowsApps 中,该应用程序被非常锁定,但您可以通过打开您的应用程序然后使用任务管理器打开文件路径来到达那里。

但它们更有可能保存在C:\\Users\\[USERNAME]\\AppData\\Local\\Packages\\[NUMBERS][COMPANY].[APPLICATION]_[RANDOMDATA]\\LocalCache\\Local\\[COMPANY]\\[APPLICATION].exe_Url_[RANDOMDATA]\\[VERSION]\\user.config.

在您的项目根文件夹下有一个名为“Properties”的文件夹,该文件夹下有一个 *.settings 文件。 那就是它被存储的地方。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM