在 .NET 8 WPF 应用中处理配置文件写入权限问题


前言

有一次我在 .NET 8 中做了一个 WPF 项目,并把它打包发给了客户。客户安装后跟我反馈,说打开程序时直接闪退。我检查了一下,发现问题是程序在启动时需要写入配置文件,因为它被安装在 C 盘(系统盘),没有足够的权限进行文件写入,所以导致出现这个问题


一、解决办法:使用 app.manifest 请求管理员权限

最直接的解决办法是让程序请求管理员权限,这样它就可以修改 C 盘上的文件了。但每次启动程序时都会弹框 需要用户同意提示

1.添加 app.manifest 文件

右键点击项目 > 添加 > 新建项,然后选择 应用程序清单文件(app.manifest),点击 添加
在这里插入图片描述

2.修改文件权限要求

打开 app.manifest 文件
在这里插入图片描述
level=“asInvoker” 意味着程序会使用当前用户的权限来运行,也就是默认的权限
如果我们想要程序在启动时请求管理员权限,可以改成level=“requireAdministrator”
在这里插入图片描述
这样一来,每次启动打开程序时,Windows 就会提示用户“是否允许该应用以管理员身份运行”,从而让程序有权限写入配置文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值