我正在运行一个应该作为管理权限运行的应用程序,但在添加清单文件后,下面的应用程序仍然不需要以管理员身份运行。释放和调试的可执行文件工作,但在编码和调试时它不需要管理权限。请理清楚这一点。
已经尝试过这两行代码:
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
和
<requestedExecutionLevel level="highestAvailable" uiAccess="false" />
答案 0 :(得分:4)
这是使用调试器所施加的限制,您启动的程序将继承Visual Studio的安全令牌。听起来你正在使用旧版本,从VS2013开始,你现在得到关于这个问题的提醒:
它告诉您该怎么做,“以管理员身份重启Visual Studio”。右键单击其快捷方式,然后选择“以管理员身份运行”。确认UAC提示您获取并重新加载解决方案。您的程序现在也会自动升级,请注意当您按F5时没有得到UAC提示。您需要测试您的清单是否单独生效。
关于这个怪癖的另一个值得注意的细节是,有一堆Nuget包只能在VS运行升高时正确运行。并且无法以非常难以诊断的方式工作,当安装脚本无法添加后构建事件时,您不会收到错误消息。在头顶添加几根白发。