且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

使用“自定义操作”卸载多个产品

更新时间:2022-01-28 00:27:23


当我卸载基础软件时,如何彻底卸载所有插件?

How to do a clean uninstall of all plug-ins when I uninstall base?

您的卸载自定义操作不会等待返回。因此,他们基本上是在不等待每个进程完成的情况下依次启动卸载命令。

Your uninstall custom actions do not wait for return. So they are basically launching uninstall commands one after another without waiting for each process to finish.

Windows Installer不支持同时运行两个InstallExecuteSequences。因此,两个卸载过程无法同时运行。由于您同时启动多个卸载过程,因此其中一些失败。

Windows Installer doesn't support two InstallExecuteSequences running at the same time. So two uninstall process cannot run simultaneously. Since your launching multiple uninstall processes simultaneously, some of them fail.

一种解决方案是使用BAT文件执行卸载命令。它等待每个命令完成,然后再启动下一个命令。缺点是,卸载完成后,您无法轻松地从目标计算机上删除该BAT。

A solution is using a BAT file to execute the uninstall commands. It waits for each command to finish before launching the next one. The downside is that you can't remove that BAT easily from the target machine when your uninstall is finished.


卸载中缺少该插件。
但是在正确卸载插件后成功创建了日志。
如何检查?

There is no logs created when the plug-in is missing from uninstall. But log created successfully when the plug-in uninstalled correctly. How to check this?

Windows Installer会自动检测到冲突的安装或卸载过程。因此,您的插件卸载会在开始写入日志之前失败。

Windows Installer automatically detects conflicting install or uninstall processes. So your plugin uninstall fails before it starts writing a log.


我知道在单个$ b中创建功能(针对不同的插件)的情况。 $ b MSI。但是我们的计划是将插件作为单独的MSI交付。在WiX中还有其他可用的
方法吗?

I know about creating features (for different plug-ins) within single MSI. But our plan is to ship the plug-ins as separate MSIs. Any other possible way available in WiX?

不是真的。