2

我为我们公司开发的产品制作了一个自定义安装程序。因为我们处理不理解 zip 文件的客户,所以我创建了一个 IExpress 可执行文件,它可以解压缩所有内容并启动 setup.exe

我面临的问题是我的安装程序需要管理员凭据(检查注册表以查看密钥是否存在,执行批处理脚本等)。到目前为止,我一直通知客户右键单击并选择“以管理员身份运行”。有没有办法自动执行此操作,所以我不必指示他们右键单击?客户不喜欢听从指示。

提前致谢!

4

2 回答 2

2

在任何 C# 解决方案的 app.manifest 中都有一个requestedExecutionLevel键。将此键的值更改为requireAdministrator将始终以管理员身份运行该应用程序。但是,这意味着如果没有管理员访问权限的用户无法运行该应用程序。或者,您可以将其设置为highestAvailable将为所有用户运行,但如果用户具有管理员权限,那么它将以管理员身份运行。希望这可以帮助!

于 2015-12-17T16:48:35.247 回答
0

我将简单地扩展 rmn36 所说的内容。要在执行时立即对 IExpress 生成的自解压 CAB 包请求管理员权限,请使用 Visual Studio(社区版本 2019 工作)编辑可执行文件的清单。

在 Visual Studio 中:文件->打开您的可执行文件。打开(单击左侧的 + 号)清单(Windows 10 IExpress 标记此 RT_MANIFEST)。RT_MANIFEST 下面应该有一个“1”,双击它以调出编辑器。将光标放在右边的列中,文本要正常编辑,而不是十六进制。即使您看到二进制文件,您也可以插入、删除等;它不是固定长度。

找到 requestedExecutionLevel 键并设置 level 属性,如图所示(默认设置为“asInvoker”):

 <requestedExecutionLevel
          level="requireAdministrator"

保存可执行文件,现在用户不再需要右键单击并“以管理员身份运行”——Windows 会自动提示。

于 2021-07-21T09:36:06.183 回答