重新缓存的 msi 仍在运行旧的自定义操作 [英] Re-cached msi still running old custom action

查看:36
本文介绍了重新缓存的 msi 仍在运行旧的自定义操作的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I have made a change to a custom action in my msi file to not attempt to stop a windows service if the service is stopped or stop pending. However, after re-caching the msi using msiexec /fv mymsi.msi, when running the major upgrade to the next version (which also has the corrected service stopping custom action) the verbose logging is showing that the old custom action code is still being run even though the cached msi was updated. I even ran a binary comparison of the cached msi against the one that was used in the re-caching.

我在这里做错了什么.

推荐答案

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

If the old custom action is still running it means one of two things:

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

  1. The new MSI logic is not correct and is still running the custom action.

重新缓存/重新安装不起作用.

The recache/reinstall did not work.

要重新缓存/重新安装,请确保您的 MSI 与旧 MSI 基本相同(相同的产品代码/升级代码等),但更新的自定义操作除外.然后做:

To re-cache/reinstall make sure your MSI is basically identical (same ProductCode/Upgradecode etc) to the old MSI except with the updated custom action. Then do:

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

这将覆盖旧的 MSI 并使用新的 MSI 进行修复(并为您提供日志文件,以防出现任何问题).

That will overwrite the old MSI and do a repair using the new MSI (and give you a log file in case anything goes wrong).

这篇关于重新缓存的 msi 仍在运行旧的自定义操作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆