我有一个旧的安装程序(exe),它是通过 installshield 创建的。我想将旧应用升级到新应用,或者在 WIX 工具集中卸载旧应用。如果有人有任何想法,请帮助我。提前致谢
有几种可能性:
可能是 InstallShield 安装程序创建了要安装的 MSI 文件。如果是这样,您需要在 WiX 中找到它的 UpgradeCode 并使用 Upgrade 元素,或者使用与旧产品相同的 UpgradeCode 并进行重大升级。
如果它不是基于 MSI 的,那就一团糟。我见过的一种技术是在注册表中找到该产品的 UninstallString。您可以使用 RegistrySearch 将其读出到属性中。你用它做什么取决于你想要什么样的卸载。一旦你有了卸载字符串命令,你需要担心一些事情:
一种。如果您将该卸载字符串命令作为即时自定义操作运行,则可能会失败,因为未提升即时自定义操作。
湾 如果您希望它保持静默,则必须以编程方式检查卸载命令字符串并添加静默开关,这取决于 InstallShield 使用的版本。可能还有一个“显示卸载进度”选项。
C。如果您将卸载作为延迟自定义操作静默运行,如果 impersonation=no,它将被提升,但如果它静默失败并且您的安装仍然继续,那么将安装旧版本和新版本。
d. 如果在卸载旧产品后安装失败,用户将不会安装任何产品。
换句话说,在情况 2 中没有好的选择,因为失败的可能性很高。在大多数情况下,安全的答案是检测较旧的产品并要求用户手动卸载它。进入 MSI 模式后,您可以使用 MajorUpgrade 元素进行无缝升级。
| 归档时间: |
|
| 查看次数: |
538 次 |
| 最近记录: |