重新缓存的MSI仍在运行旧的自定义操作

use*_*900 5 windows-installer wix wix3.5

我对msi文件中的自定义操作进行了更改,以在服务停止或停止挂起时不尝试停止Windows服务。但是,在使用msiexec / fv mymsi.msi重新缓存了msi之后,在将主要升级运行到下一个版本(也具有已纠正的服务停止自定义操作)时,详细的日志记录表明仍在使用旧的自定义操作代码即使已更新缓存的msi,也可以运行。我什至对缓存的msi与重新缓存中使用的msi进行了二进制比较。

我在这里做错了。

Rob*_*ing 5

如果旧的自定义操作仍在运行,则意味着以下两种情况之一:

  1. 新的MSI逻辑不正确,并且仍在运行自定义操作。

  2. 重新缓存/重新安装无效。

要重新缓存/重新安装,请确保您的MSI与旧的MSI基本相同(相同的ProductCode / Upgradecode等),但已更新的自定义操作除外。然后做:

msiexec /fv new.msi /l*v log.txt
Run Code Online (Sandbox Code Playgroud)

这将覆盖旧的MSI,并使用新的MSI进行修复(并在出现任何问题时提供日志文件)。