0

我有一个可以按用户和每台机器安装的 wix 设置。

我使用WixUI_Advanced对话框在 perUser 和 perMachine 之间进行选择。

但是,即使作为用户,设置最终也会请求 UAC 权限,我不知道为什么。

我通过设置验证InstallPrivileges="limited"了设置运行良好。

<Package Id="*" InstallerVersion="500" Compressed="yes" 
    Description="!(loc.ProductDescription)"
    Comments="!(loc.Comments) $(var.VersionNumber)" InstallPrivileges="limited" />

有没有办法InstallPrivileges根据用户选择有条件地设置?

4

1 回答 1

0

InstallPrivileges 属性映射到字数摘要信息属性的第 3 位。这将启用和禁用提升本身,并旨在用于提前知道它们将仅按用户安装的包中。

Windows Installer 5 引入了单包创作,它允许您一起使用 MSIINSTALLPERUSER 和 ALLUSERS 有条件地做两件事:

  • 禁止高程提示
  • 将文件和注册表项的机器位置重定向到每个用户的位置

因此,如果您想要有条件的提升和有条件的按用户安装,并且如果您可以安全地要求 Windows 7 或更高版本,请找出有条件地设置 MSIINSTALLPERUSER=1 和 ALLUSERS=2 的最佳方法。(我不知道是否有任何预建的对话框集可​​以为 WiX 执行此操作。)

或者手动执行:使用在两个不同包之间进行选择的启动器;它们应该主要在 InstallPrivileges 属性以及它们安装数据的位置上有所不同。

于 2018-12-21T03:09:20.307 回答