【发布时间】:2021-11-04 01:21:09
【问题描述】:
我正在修改一个 Wix 项目。必须为所有用户安装它并写入 HKLM。所以,在我的包中:
<Package Id="*" InstallerVersion="405" Compressed="yes" InstallScope="perMachine"
InstallPrivileges="elevated"
Manufacturer="$(var.Publisher)"
Description="$(var.ProductName) $(var.Version) Setup" />
我还有其他可能有效或无效的检查...
类似的东西:
<CustomAction Id='IsPrivileged' Error='You must be an admin to install this product' />
<InstallExecuteSequence>
<Custom Action='IsPrivileged' Before='AppSearch'>Not Privileged</Custom>
</InstallExecuteSequence>
我所拥有的,确保在安装或卸载时,它需要提升。但是,人们也想修改......我就遇到了问题。
当我接手时,安装程序将 ARPNOMODIFY 设置为禁用修改。既然能够修改就好了,我把那行注释掉了:
<!--<Property Id="ARPNOMODIFY" Value="yes" Secure="yes" />-->
所以,现在我可以“修改”或“更改”它,具体取决于它是从 Windows 中的删除程序 UI 中完成还是通过再次运行安装程序来完成。
但是,它根本不起作用。注册表项被删除,当以这种方式运行时,我永远不会收到 UAC 提示。它只是尝试运行安装程序。
我已经做了很长时间了,无法想办法让修改/更改提升。它只是继续前进并试图运行并将一切搞砸。 ISTM 应该在开始 InstallExecute 序列之前要求提升,但它从来没有这样做。
我怎样才能让它提升或要求管理员权限?
我更愿意找到提升的方法,但如果它被阻止继续,我会很高兴。但它只是想运行和管理我的安装。
【问题讨论】:
-
我会说,我发现从非提升提示符/shell 运行时,修复也会弄乱安装。
-
你找到解决方法了吗?面临同样的问题..
标签: wix windows-installer