我的WIX脚本正确地升级了旧的安装,直到我将其更改为全用户安装。现在升级会导致Windows添加/删除程序列表中出现两个项目。
在旧版本中,快捷方式被添加到:C:Usersxxx1AppDataRoamingMicrosoftWindowsStart菜单程序 xxx2。这是错误的。
添加到Wix脚本后,快捷方式添加到:C: ProgramData 微软 Windows 程序 xxx2开始菜单。这是正确的。但现在升级不再工作(Windows添加/删除双条目)。
我尝试了几个想法,如:
- 卸载后设置"ALLUSERS"标志。没有成功。
- 手动尝试卸载旧版本。无法启动
- 通过使用:InstallPrivileges="elevated"AdminImage ="yes"InstallScope ="perMachine"没有成功。
问题:在我将Wix脚本从"单用户"更改为"所有用户"后,我如何才能正确升级(或在安装前卸载)?
正确。这是Windows安装限制。
即使MSI可以做到这一点,它也无法联系到机器上可能需要删除每个用户的X个其他用户。
https://learn.microsoft.com/en-us/windows/win32/msi/major-upgrades
如果应用程序安装在每个用户的安装上下文中,对应用程序的任何主要升级也必须使用每个用户的上下文。如果应用程序安装在每台机器安装上下文,对应用程序的任何重大升级也必须使用每台机器上下文执行。Windows安装程序将不跨安装上下文安装主要升级。