当开发的程序需要安装时,有时默认安装会遇到访问被拒绝的问题。为了解决这个问题,需要以管理员身份运行程序。
应用程序
打开项目属性,找到应用程序下的清单, 设置好如下图
UAC清单
再找到项目的Properties
一项,点击展开,如下图
会看到里面的一个文件app.manifest
,双击打开这个文件,打开如下
<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
<!-- UAC 清单选项
如果想要更改 Windows 用户帐户控制级别,请使用
以下节点之一替换 requestedExecutionLevel 节点。n
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
<requestedExecutionLevel level="highestAvailable" uiAccess="false" />
指定 requestedExecutionLevel 元素将禁用文件和注册表虚拟化。
如果你的应用程序需要此虚拟化来实现向后兼容性,则删除此
元素。
-->
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
</requestedPrivileges>
有的文件会自动加上注释, 是否感到贴心呢,
按照提示把asInvoker
改成requireAdministrator
保存即可
再重新编译运行看, 弹出提示要求提升的权限, 如下图, 选择重新启动即可
管理员身份
这下项目编译出来的程序, 程序图标右下角会多出一个盾牌小图标🛡
这个程序就会自动以管理员身份运行了, 安装程序正常运行
如果不想每次都重启, 只要记得,在打开VS开发工具前,以管理员身份运行开发工具
安全调试
如果弹出以下提醒, 说明项目属性有设置了安全调试选项,
打开项目属性, 点中那个安全性
项,
ClickOne
在里面有个设置,启用ClickOne
安全设置勾选给取消,再试试重新编译就好了,
这安全调试选项与管理员权限提权无关,不要被其他文章误导勾选