如何在 wix 安装程序中卸载另一个程序(exe)?

Anu*_*ngh 2 wix

我有一个旧的安装程序(exe),它是通过 installshield 创建的。我想将旧应用升级到新应用,或者在 WIX 工具集中卸载旧应用。如果有人有任何想法,请帮助我。提前致谢

Phi*_*lDW 6

有几种可能性:

  1. 可能是 InstallShield 安装程序创建了要安装的 MSI 文件。如果是这样,您需要在 WiX 中找到它的 UpgradeCode 并使用 Upgrade 元素,或者使用与旧产品相同的 UpgradeCode 并进行重大升级。

  2. 如果它不是基于 MSI 的,那就一团糟。我见过的一种技术是在注册表中找到该产品的 UninstallString。您可以使用 RegistrySearch 将其读出到属性中。你用它做什么取决于你想要什么样的卸载。一旦你有了卸载字符串命令,你需要担心一些事情:

    一种。如果您将该卸载字符串命令作为即时自定义操作运行,则可能会失败,因为未提升即时自定义操作。

    湾 如果您希望它保持静默,则必须以编程方式检查卸载命令字符串并添加静默开关,这取决于 InstallShield 使用的版本。可能还有一个“显示卸载进度”选项。

    C。如果您将卸载作为延迟自定义操作静默运行,如果 impersonation=no,它将被提升,但如果它静默失败并且您的安装仍然继续,那么将安装旧版本和新版本。

    d. 如果在卸载旧产品后安装失败,用户将不会安装任何产品。

换句话说,在情况 2 中没有好的选择,因为失败的可能性很高。在大多数情况下,安全的答案是检测较旧的产品并要求用户手动卸载它。进入 MSI 模式后,您可以使用 MajorUpgrade 元素进行无缝升​​级。