我尝试执行主要升级与我的MSI安装程序和安静安装。当使用具有完整用户界面的正常安装时,安装程序已经运行良好。在这种情况下,旧产品将被卸载,因为FindRelatedProducts操作(从FolderForm中的UI序列)检测到我以前安装的版本。升级安装会导致安装软件的重复条目(FindRelatedProducts not executed)
当MSIEXEC的/ QR开关用于抑制对话框和需要用户交互(基本上重复使用从最后版本的设置),则失败:
MSI (s) : Doing action: FindRelatedProducts
Action FindRelatedProducts. Searching for related applications
Action start FindRelatedProducts.
MSI (s) : Skipping FindRelatedProducts action: already done on client side
Action ended FindRelatedProducts. Return value 0.
其结果是,有在Windows的已安装软件对话框中显示两个条目 - 一个用于新旧版本,所以在这种情况下旧版本未被卸载/删除。
有,我可以使用,将仍然执行FindRelatedProducts行动的任何其他msiexec命令开关?它是否可以集成到其他地方,以便在如此安静的环境中执行?
难道说你以前的安装是在不同的上下文(每名用户的机器对),比静默安装?当您安装每个用户时,MSI无法卸载每台计算机的安装,反之亦然。这是你必须忍受的技术限制。 – 2010-01-04 16:52:52
感谢您的回答,Divo。 上下文应该相同,只有UI级别不同(5对4)。但是我能看到的是这个动作没有被执行,因为没有显示对话框。它将被用于FolderForm NextButton的DoAction触发,但这是不可见的,并用缩小的UI级别执行。另一方面,当FindRelatedProducts应该被检查并再次触发时,它会被跳过(如上面的日志片段所示),因为它“已经在客户端完成”。因此,在这里,对于两个UI级别,执行相同的操作。 – marco4net 2010-01-05 08:38:30