2016-08-20 30 views
0

我们有一个自定义WIX引导程序安装程序。引导程序捆绑链3个人应用程序msi。引导程序自定义用户界面允许用户选择要安装的应用程序,并根据选择自定义引导程序将安装其msi。使用更高版本的msi卸载应用程序

现在考虑这种情况。 应用程序,说A1版本1.0.0.50安装在系统中。假设引导程序版本也是1.0.0.50

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

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

我在注册表中看到它存储每个msi的Uninstallstring。如果我运行卸载字符串值,例如MsiExec.exe/X {90140000-0011-0000-0000-0000000FF1CE} 它是否会正确执行msi卸载所完成的操作?它会处理清理注册表项,删除已安装的文件等?

回答

0

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

+0

谢谢你的回答。你可以请一个例子详细说明它。例如,我对设置属性和安全cutomproperties不太了解。在我的MSIS – user3663551

+0

当前升级表是如下<升级编号= '$(var.ProductUpgradeCode)'> user3663551

+0

这是正确的吗?升级到更高版本工作正常。 升级期间,它会卸载旧版本并安装新版本。 但是,而不是升级如果我只是想卸载它不是这样做 – user3663551

相关问题