在没有管理员权限的情况下运行 WinForms 应用程序

本文关键字:情况下 运行 WinForms 应用程序 权限 管理员 | 更新日期: 2023-09-27 17:56:47

我创建了一个Windows表单应用程序执行一些功能。问题是当我部署应用程序时:

  1. 如果我使用 ClickOnce 进行部署,那么一切正常。安装后,winforms应用程序无需输入管理员密码即可运行。
  2. 如果我使用 Visual Studio 安装项目进行部署并创建 MSI 安装程序,则在安装后每次运行时都需要管理员密码。

我想使用 Visual Studio Setup Project(MSI) 进行部署,但不希望软件要求提升的权限。

MSI 安装不要求输入密码,但已安装的程序会要求输入密码。

在没有管理员权限的情况下运行 WinForms 应用程序

你需要使用

UAC 提升的权限

。请看这个 Ms 文档链接

此外,这个项目也用UAC的例子做了一些研发

希望这有帮助

基本上,您需要编辑(或添加,如果您还没有)一个 app.manifest 文件,然后使用 requestExecutionLevel 来排序所需的执行上下文。

在 MSDN 中阅读有关它的更多信息

需要创建应用程序清单 (UAC) 并将其嵌入到应用程序中,如此处所述。如果您不想这样做,ClickOnce 可能是一个解决方案。

MSDN 提供了有关此主题的一些有用信息,特别是:

对用户计算机的影响。使用 Windows 安装程序部署时,应用程序通常依赖于共享组件,因此可能会 版本控制冲突;使用 ClickOnce 部署时,每个应用程序都是 自包含,不能干扰其他应用程序。

安全权限。Windows 安装程序部署需要 管理权限,仅允许有限的用户安装; ClickOnce 部署使非管理用户能够安装和 仅授予 应用。