我创建了一个Windows表单应用程序执行一些功能。问题是当我部署应用程序时:
- 如果我使用 ClickOnce 进行部署,那么一切正常。安装后,winforms应用程序无需输入管理员密码即可运行。
- 如果我使用 Visual Studio 安装项目进行部署并创建 MSI 安装程序,则在安装后每次运行时都需要管理员密码。
我想使用 Visual Studio Setup Project(MSI) 进行部署,但不希望软件要求提升的权限。
MSI 安装不要求输入密码,但已安装的程序会要求输入密码。
你需要使用
UAC 提升的权限
。请看这个 Ms 文档链接
此外,这个项目也用UAC的例子做了一些研发
希望这有帮助
基本上,您需要编辑(或添加,如果您还没有)一个 app.manifest 文件,然后使用 requestExecutionLevel 来排序所需的执行上下文。
在 MSDN 中阅读有关它的更多信息
需要创建应用程序清单 (UAC) 并将其嵌入到应用程序中,如此处所述。如果您不想这样做,ClickOnce 可能是一个解决方案。
MSDN 提供了有关此主题的一些有用信息,特别是:
对用户计算机的影响。使用 Windows 安装程序部署时,应用程序通常依赖于共享组件,因此可能会 版本控制冲突;使用 ClickOnce 部署时,每个应用程序都是 自包含,不能干扰其他应用程序。
安全权限。Windows 安装程序部署需要 管理权限,仅允许有限的用户安装; ClickOnce 部署使非管理用户能够安装和 仅授予 应用。