我使用WiX语言编写了我的安装程序。它支持主要升级机制。一个特定的要求是同一MSI文件不可能被安装两次。
现在来到棘手的部分:如果用户在安装后再次尝试安装(UI模式),安装程序将进入维护模式,一切正常(更改/修复将被禁用)。
然而,在静默模式下安装时
msiexec.exe /i installer.msi /qn
第二个安装将继续正常安装(我们不希望这样!)
有一些需要注意的事情:
在第二次安装的日志文件中,序列“FindRelatedProducts”将被跳过(如微软文档http://msdn.microsoft.com/en-us/library/windows/desktop/aa368600(v=vs.85).aspx所述)
另外,我进行了一些调查,发现在这里http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/UpgradeVersion-is-not-detecting-the-same-version-preventing-downgrades-td5875840.html有很好的信息,声称对于这种情况,我们可以使用Installed属性来检测产品是否已安装……
然而,我卡在这里了:因为我必须避免安装先前或与当前版本相同的版本,并允许更大的升级,我该如何在WiX中实现这一点?
感谢您的帮助!