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

时间:2013-06-03 16:27:09

标签: wix windows-installer wix3.5

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

我在这里做错了什么。

2 个答案:

答案 0 :(得分:5)

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

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

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

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

    msiexec /fv new.msi /l*v log.txt
    

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

答案 1 :(得分:2)

在我的情况下,它是%windir%\ Installer中MSI的缓存副本以及系统注册表中的相应密钥(由HKLM和HKCR中的GUID找到)。