我有两个产品,ProdU 和 ProdM。 ProdU“按用户”安装(=在
Computer\HKEY_CURRENT_USER\SOFTWARE\Microsoft\Installer\Products\
下注册),ProdM“按机器”安装(=在Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Installer\Products\
下注册)。 WiX决定了这个,我不是故意配置的!
现在我创建了两个主要升级安装程序,WiX 决定它们都是“每台机器”。这导致了问题,ProdU 根本没有更新,因为第二个“注意”here:
如果应用程序安装在每用户安装上下文中,则应用程序的任何主要升级也必须使用每用户上下文执行。如果应用程序安装在每台计算机安装上下文中,则该应用程序的任何主要升级也必须使用每台计算机上下文执行。 Windows Installer 不会跨安装上下文安装主要升级。
如果我不手动设置,WiX 如何决定范围?
PS,以防万一:ProdU 和 ProM 基于 WiX 3.11,更新基于 WiX 4。
在 WiX v3 中,如果您未指定 Package/@InstallScope,则默认为每个用户。
但是您可以通过设置 ALLUSERS 属性在安装时更改安装范围。这实际上控制着软件包是按用户安装还是按计算机安装。
因此,您需要查看日志文件以了解如何设置 ALLUSERS 属性。