You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

.NET Core 3.1 WPF应用配置文件存储位置咨询

.NET Core 3.1 WPF设置文件找不到?看这里!

这绝对是.NET Framework转.NET Core时最容易踩的坑之一——你没记错,.NET 4.5里的配置文件确实在应用目录,但.NET Core 3.1彻底改了设置的存储逻辑!

核心原因:存储路径变了

.NET Core为了适配现代系统的权限规则(避免写入安装目录时的权限问题),把设置文件存在了用户专属的应用数据目录里,而不是程序的安装路径。

具体路径(Windows系统)

默认路径长这样:

C:\Users\<你的用户名>\AppData\Local\<应用程序的公司名称>\<应用名>_<一串随机哈希值>\<应用版本号>

举个例子,如果你的用户名是julian,应用名是MyWpfApp,路径可能是:

C:\Users\julian\AppData\Local\MyCompany\MyWpfApp_abc123def456\1.0.0.0

注意:AppData是隐藏文件夹,需要在文件资源管理器里开启「显示隐藏的项目」才能看到。

怎么快速找到你的设置文件?

直接在代码里打印出设置文件的实际路径就行!在你保存设置的代码后面加一行:

// 假设你的设置实例是config.Default
MessageBox.Show(config.Default.FilePath);

运行程序后,弹窗里的路径就是你的设置文件所在位置,直接复制到文件资源管理器就能找到user.config(没错,文件名也从config.xml变成user.config了!)

为什么这么设计?

  • 权限友好:现代Windows系统默认禁止普通程序写入Program Files等安装目录,存在用户私有目录不会触发UAC弹窗或权限错误
  • 数据隔离:不同用户使用同一应用时,各自的设置是独立的,不会互相干扰
  • 版本兼容:应用更新后,旧版本的设置会被保留,不会因为覆盖安装丢失

验证一下

按上面的方法找到user.config,打开后你会看到你保存的LastUpdate值就在里面,和你代码里写入的一致——这就说明设置确实正常保存了,只是位置变了而已!

内容的提问来源于stack exchange,提问作者julian bechtold

火山引擎 最新活动