如何卸载没有升级机制的WiX软件包

时间:2018-05-16 08:10:41

标签: c# wix installer bootstrapper

我们的WiX自定义引导程序的版本1没有用于升级操作的任何卸载逻辑。此安装程序已经推出。现在在版本2中我想支持升级,但是为了卸载v1包,我必须在我的BA中加入一些逻辑。我正在考虑打包修改后的v1捆绑包(具有卸载逻辑),然后我将使用它来覆盖C:\ ProgramData \ Package Cache中的旧捆绑包,这样当我的v2升级执行时,它将调用修改后的v1捆绑并卸载旧包。现在v2的安装成功,但是v1的卸载失败了。

我的日志文件包含以下信息:

Detected related bundle: {297fb3b4-f677-4d92-a81a-c0448587b072}, type: Upgrade, scope: PerMachine, version: 1.1.0.0, operation: None
Detected related bundle: {90a15f11-66af-4682-8b09-7f3600f5bacf}, type: Upgrade, scope: PerMachine, version: 1.2.0.0, operation: None
Plan begin, 7 packages, action: Uninstall
Plan skipped removal of provider key: {78089b86-4712-4498-b4f6-7a4544d721b8} because it is registered to a different bundle: (null)
Plan skipped related bundle: {90a15f11-66af-4682-8b09-7f3600f5bacf}, type: Upgrade, because it was previously scheduled.

我没有从v2升级到v3的问题,因为我的v2已经有了卸载逻辑。

1 个答案:

答案 0 :(得分:0)

应该在V1安装中设置UpgradeCode。我会利用它来实现"升级逻辑。"

如果由于某种原因无法使用,您可以随时使用V1安装中的ProductCode进行卸载。 msiexec /x {}