安装时删除其他软件

时间:2018-11-28 14:46:33

标签: wix burn

在安装软件时,我需要小心,然后再卸载另一个msi软件包。这可能吗?可以帮我烧吗?

1 个答案:

答案 0 :(得分:2)

MSI /主要升级 :您可以在安装的一个或所有MSI文件中将条目添加到Upgrade table。然后,将在安装MSI之前(或之后)卸载较旧的/其他MSI。这是MSI的"major upgrade" feature内置产品,旨在为您自己的产品提供升级,但是您可以卸载任何想要的基于MSI的产品-甚至是竞争产品-仅在精打细算的情况下,并且必须先致电给合法客户: -)。也许会看到以下描述(至少是相关问题): Adding entries to MSI UpgradeTable to remove related products

刻录 :刻录可以运行EXE文件,该文件可以启动对先前存在的MSI文件的卸载,但是当您可以使用上述内置的以MSI方法代替。我不确定是否可以直接通过Burn的ExePackage element调用 msiexec.exe ,但是您可以通过多种方式从自定义的EXE文件中触发卸载: strong> Uninstalling an MSI file from the command line without using msiexec 。这取决于您的EXE编写的内容。如果它是托管代码,则可以使用DTF方法(链接答案中的选项6)。如果是C ++,则可能使用MSI API Win32函数。 请参阅链接答案中的选项14 。我猜您也可以选择使用msiexec.exe(选项3)。我的建议:始终使用本机代码进行部署。您的设置必须可以在任何计算机上以任何语言,任何状态和任何OS版本在任何计算机上工作。还有许多其他变量。 最小依赖是唯一的解决方法。