Windows installer Windows Installer:升级期间更改安装策略导致应用程序副本重复

Windows installer Windows Installer:升级期间更改安装策略导致应用程序副本重复,windows-installer,Windows Installer,我面临Windows Installer安装策略的问题。如果我使用每个用户/每台计算机(仅限我/每个人)的这些选项中的任何一个安装应用程序,然后安装具有不同选项的升级版本,则安装程序不会检测早期版本,也不会卸载早期版本,这会导致控制面板中相同应用程序的重复条目。如果安装策略已更改,为什么我的安装程序无法检测现有安装?有没有办法欺骗安装程序正确卸载早期版本?我发现了一篇类似的文章,但这并不能解决我的问题。您所指的过程称为“”。在此过程中,Windows Installer将在单个事务中安装新版本并

我面临Windows Installer安装策略的问题。如果我使用每个用户/每台计算机(仅限我/每个人)的这些选项中的任何一个安装应用程序,然后安装具有不同选项的升级版本,则安装程序不会检测早期版本,也不会卸载早期版本,这会导致控制面板中相同应用程序的重复条目。如果安装策略已更改,为什么我的安装程序无法检测现有安装?有没有办法欺骗安装程序正确卸载早期版本?我发现了一篇类似的文章,但这并不能解决我的问题。

您所指的过程称为“”。在此过程中,Windows Installer将在单个事务中安装新版本并卸载以前的版本(顺序取决于您计划称为RemoveExistingProducts的标准操作的位置)

根据MSDN,主要升级无法更改上下文(每用户->每台机器或每台机器->每用户)

注意如果应用程序是在每用户安装环境中安装的,则还必须对该应用程序执行任何重大升级 使用每用户上下文。如果在中安装了应用程序 根据机器安装上下文,对应用程序进行任何主要升级 还必须使用每台机器上下文执行。窗户 安装程序不会跨安装上下文安装主要升级


您必须首先卸载每用户安装(在可能存在的所有配置文件中),然后安装每机器安装。这是每个用户安装通常不是最佳实践的原因之一。它们很难维护。

但在我的情况下,我的安装程序显示了选择安装策略的选项(仅限我/每个人)(我认为可以使用InstallAlluservible属性将其隐藏)。有没有办法在升级过程中隐藏这些选项?当用户执行新安装时,我需要这些。InstallAllService表示您正在使用Visual Studio部署项目。此工具不会公开该级别的详细信息。即使是这样,如果用户A按用户安装,然后用户B按机器安装,它也无法看到用户A的安装。然后,当用户A登录时,他将看到每用户和每台机器安装一个。克里斯托弗:你提供的信息对我来说非常有用,虽然我无法实现我想做的事情,但这对我来说是可以接受的,所以我会接受你的回答。谢谢你的帮助。