我们有一个使用 WiX 3.11.1 构建的设置,如果该 exe 没有以提升的权限启动(又名“以管理员身份运行”),那么我们将尝试以编程方式触发一个新进程,其中动词为“runas”,文件名为位置主 exe 的启动位置 (C:\Users\loggedin_username\AppData\Local\Temp{GUID}.cr\setup_name.exe)
但是通过在临时目录中创建带有以下消息的新日志文件,新触发的进程突然退出:
- 错误 0x80070006:无法寻找文件的开头。
- 错误 0x80070006:无法初始化引擎部分。
- 错误 0x80070006:无法初始化引擎状态。
如果我们对 WiX 3.10.2 做同样的事情(以编程方式触发具有提升权限的新进程),那么它会创建一个新进程并且工作正常。
我想,从 WiX 3.11.1 开始,我们无法使用提升的权限启动相同的 exe。不确定 WiX 团队是否对安全性进行了任何重大更改。这是 WiX 3.11.1 中的已知问题吗?
我想要实现的只是在 HKLM\Microsoft\Windows\CurrentVersion\Uninstall 路径中添加/修改已安装设置注册表项的键值。在 Windows 10 及更高版本上,只有管理员可以完全访问 HKLM 路径。
如果使用“以管理员身份运行”选项启动 WiX 设置,一切正常,但如果用户没有使用该选项启动,我想以提升权限以访问 HKLM 路径但使用 WiX 3.11.1 以编程方式启动它失败。
关于如何实现的任何建议?任何帮助,将不胜感激。
谢谢