首页 文章

使用更高版本的msi卸载应用程序

提问于
浏览
0

我们有一个自定义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

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

相关问题