我为我们公司开发的产品制作了一个自定义安装程序。因为我们处理不理解 zip 文件的客户,所以我创建了一个 IExpress 可执行文件,它可以解压缩所有内容并启动 setup.exe
我面临的问题是我的安装程序需要管理员凭据(检查注册表以查看密钥是否存在,执行批处理脚本等)。到目前为止,我一直通知客户右键单击并选择“以管理员身份运行”。有没有办法自动执行此操作,所以我不必指示他们右键单击?客户不喜欢听从指示。
提前致谢!
在任何 C# 解决方案的 app.manifest 中都有一个requestedExecutionLevel
键。将此键的值更改为requireAdministrator
将始终以管理员身份运行该应用程序。但是,这意味着如果没有管理员访问权限的用户无法运行该应用程序。或者,您可以将其设置为highestAvailable
将为所有用户运行,但如果用户具有管理员权限,那么它将以管理员身份运行。希望这可以帮助!
我将简单地扩展 rmn36 所说的内容。要在执行时立即对 IExpress 生成的自解压 CAB 包请求管理员权限,请使用 Visual Studio(社区版本 2019 工作)编辑可执行文件的清单。
在 Visual Studio 中:文件->打开您的可执行文件。打开(单击左侧的 + 号)清单(Windows 10 IExpress 标记此 RT_MANIFEST)。RT_MANIFEST 下面应该有一个“1”,双击它以调出编辑器。将光标放在右边的列中,文本要正常编辑,而不是十六进制。即使您看到二进制文件,您也可以插入、删除等;它不是固定长度。
找到 requestedExecutionLevel 键并设置 level 属性,如图所示(默认设置为“asInvoker”):
<requestedExecutionLevel
level="requireAdministrator"
保存可执行文件,现在用户不再需要右键单击并“以管理员身份运行”——Windows 会自动提示。