使用更高版本的msi

时间:2016-08-20 14:13:27

标签: wix bootstrapper

我们有一个自定义WIX bootstrapper安装程序。 Bootstrapper捆绑链3个人应用程序msi。 Bootstrapper自定义UI允许用户选择要安装的应用程序,并根据选择自定义引导程序将安装其msi。

现在考虑一下这个场景。 应用程序,例如A1版本1.0.0.50安装在系统中。假设bootstrapper版本也是1.0.0.50

假设下一版本的bootstrapper安装程序有一些更新,假设它的版本是1.0.0.51。 使用这个,我想安装第二个应用程序,比如A2。 另外我想卸载A1。目前,我们支持使用此最新安装程序将A1升级到1.0.0.51版本。

但我想检查使用最新的bootstrapper版本卸载A1的可能性。我该如何实现它? 因为根据我们的项目要求,最终用户应该能够使用任何版本的bootstrapper卸载A1。

我在注册表中看到它为每个msi存储了Uninstallstring。如果我运行uninstallstring值,例如MsiExec.exe / X {90140000-0011-0000-0000-0000000FF1CE} 它会完全由msi卸载完成吗?它会处理清理注册表项,删除已安装的文件等吗?

1 个答案:

答案 0 :(得分:0)

不要去注册局。 MSI数据库有一个升级表,有望满足您的要求(https://msdn.microsoft.com/en-us/library/windows/desktop/aa372379(v=vs.85).aspx)。添加包含已安装MSI的升级代码的条目,在VersionMin&下提供版本边界。 VersionMax,根据您的要求设置属性769或其他内容,创建一个新的公共属性并将其添加到SecureCustomProperties。 最后,在安装过程中启用Windows日志记录,并检查日志以查找标准操作,如findrelatedproducts和removeexistingproducts如果您遇到任何问题。