Properties.Settings.Default存储在哪里?

时间:2009-06-11 17:05:27

标签: c# .net settings

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

运行VS2008,.NET 3.5和C#。我使用默认值将“用户”设置添加到“属性设置”选项卡,然后使用以下代码读取它们:

myTextBox.Text = Properties.Settings.Default.MyStringProperty;

然后,在用户编辑选项对话框中的值后,我将其保存为:

Properties.Settings.Default.MyStringProperty = myTextBox.Text;
Properties.Settings.Default.Save();

我的问题是,这个新值保存在哪里?可执行文件目录中的MyApp.exe.config文件未更新,它仍包含默认值。另外,据我所知,该目录中的其他任何文件都没有更新!但是,当程序重新读取值时,它会获得更改的值,所以我知道它已保存在某个地方......

这不仅仅是学术性的,我需要能够手动编辑今天早上的价值,当我找不到任何改变的东西时,我会感到难过。

10 个答案:

答案 0 :(得分:131)

为了使用较新版本的Windows策略,默认情况下只允许对Program Files文件夹进行读取访问(除非您提示使用UAC进行提升,但这是另一个主题...),您的应用程序将进行设置%userprofile%\appdata\local%userprofile%\Local Settings\Application Data下的文件夹,具体取决于您运行的Windows版本,用于特定于用户的设置。如果您存储所有用户的设置,则它们将位于C:\usersC:\Documents and Settings下的相应文件夹中,用于所有用户个人资料(例如:C:\users\public\appdata\local)。

答案 1 :(得分:76)

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

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

答案 2 :(得分:6)

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

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

答案 3 :(得分:5)

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

然而,位置可能会改变。

答案 4 :(得分:0)

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

我不知道你的期望,因为用户通常甚至没有首先对可执行文件目录的写访问权。

答案 5 :(得分:0)

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

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

答案 6 :(得分:0)

它们保存在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;
    }
...

答案 7 :(得分:0)

如果使用Windows 10,则该目录为:

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

+

\ 1.0.0.0

答案 8 :(得分:-1)

对于任何想知道Microsoft Store中应用程序设置在哪里的人来说,它们都位于WindowsApps中,该应用程序已被锁定,但是您可以通过打开应用程序,然后使用Task-Manager打开文件路径来到达那里。 / p>

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

答案 9 :(得分:-15)

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