添加/删除/读写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”“

 

  总结:此方法从根部解决问题,虽然繁琐,而且需要重新打包,但是可以一劳永逸

posted @ 2021-01-09 15:48  vv彭  阅读(896)  评论(0编辑  收藏  举报