我以为我知道这一点,但今天我再次被证明是错误的。
运行 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 进行提升,但这是另一个主题......),您的应用程序将在 { 1} 或 %userprofile%\Local Settings\Application Data
取决于您运行的 Windows 版本,用于用户特定的设置。如果您存储所有用户的设置,那么它们将位于所有用户配置文件的 C:\users
或 C:\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;
Roaming
或者可能是 LocalLow
而不是 Local
? ConfigurationUserLevel
取决于用户的配置文件是漫游还是本地。在公司中,它通常是漫游的。
感谢您为我指明正确的方向。我发现 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 10,这是目录:
C:\Users<用户名>\AppData\Local\
+
Url_somedata
位吗?
我的一项 Windows 服务在 Windows Server 2016 中以本地系统身份登录,我可以在 C:\Windows\SysWOW64\config\systemprofile\AppData\Local\{your application name} 下找到 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;
}
...
用户特定的设置保存在该应用程序的用户应用程序数据文件夹中。查找 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 文件。那就是它被存储的地方。
不定期副业成功案例分享