添加/删除/读写c盘文件——c#
一、前言:
有时候我们为自己的程序添加配置文件,如tet、ini、xml等文件,又或者保存软件运行时的日志
当我们把软件打包后,默认安装在c盘,而配置文件也会跟随生成在安装目录下
此时你会发现,配置文件无法生成/修改
这是因为操作c盘文件需要管理员身份
二、有两种方法可以达到目的,一种是修改安装后的软件属性,另一种是修改打包前的程序属性
方法一:修改安装后的软件属性
步骤:1.右键软件选择属性
2.选择兼容性目录栏
3.勾选以管理员身份运行此软件
总结:此方法操作简单,不用重新打包,对只有一次安装该软件比较友好,但如果需要多次安装,就显得很繁琐,没安装一次都要去修改一次,发行 给别人不推荐
方法二:在vs修改打包前的程序属性
步骤:1.查看自己项目的Properties是否有app.manifest,如果有,直接跳到第3步
2.如果没有第1步所说的文件,则右键项目——>属性——>安全性——>勾选启动ClickOnce安全设置选项
3.双击打开Properties下的app.manifest文件,按照按照注释把requestedExecutionLevel 节点的 level="asInvoker"
替换成level="requireAdministrator" 即可
其中权限解析如下:
(1)asInvoker 当前权限,可以理解为只有一般用户的权限;
(2)requireAdministrator 管理员权限,如果运行此程序的账户没有管理员权限则直接不运行;
(3)highestAvailable 用户所能拿到的最高权限,如果用户不是管理员也会运行。
下图是修改后的截图:
4.把步骤2的ClickOnce取消掉:右键项目——>属性——>安全性——>取消勾选启动ClickOnce安全设置选项
如果不取消,会报错误:“ClickOnce 不支持请求执行级别“requireAdministr”“
总结:此方法从根部解决问题,虽然繁琐,而且需要重新打包,但是可以一劳永逸