【问题标题】:C# Application not running with administrative privilegeC# 应用程序未以管理权限运行
【发布时间】:2015-11-05 23:03:43
【问题描述】:
我正在运行一个应该以管理员权限运行的应用程序,但在添加清单文件后,下面的应用程序仍然不需要以管理员身份运行。发布和调试的可执行文件可以工作,但在编码和调试时不需要管理权限。请解决这个问题。
已经试过这两行代码了:
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
和
<requestedExecutionLevel level="highestAvailable" uiAccess="false" />
【问题讨论】:
标签:
c#
.net
windows
winforms
【解决方案1】:
这是使用调试器施加的限制,您启动的程序会继承 Visual Studio 的安全令牌。听起来您使用的是旧版本,从 VS2013 开始,您现在会收到有关此问题的提醒:
它告诉您该怎么做,“以管理员身份重新启动 Visual Studio”。右键单击其快捷方式并选择“以管理员身份运行”。确认您收到的 UAC 提示并重新加载您的解决方案。您的程序现在也会自动运行提升,请注意,当您按 F5 时,您不会收到 UAC 提示。您需要单独测试您的清单是否有效。
关于这个怪癖的另一个值得注意的细节是,周围有一堆 Nuget 包,只有在 VS 运行提升时才能正常运行。并且无法以非常难以诊断的方式工作,当其安装脚本无法添加构建后事件时,您不会收到错误消息。在我的头顶添加几根白发。