我知道修复安装有不同的方法,使用 UI(控制面板)或 CLI(msiexec.exe),但是:
我如何只列出在没有真正修复的情况下执行的操作。即显示“文件 xyz 丢失”。或“自安装后修改了文件 abc”而不恢复它们。(文件安装为 Vital 和 KeyFile)。
我知道修复安装有不同的方法,使用 UI(控制面板)或 CLI(msiexec.exe),但是:
我如何只列出在没有真正修复的情况下执行的操作。即显示“文件 xyz 丢失”。或“自安装后修改了文件 abc”而不恢复它们。(文件安装为 Vital 和 KeyFile)。
Windows Installer 不会在该粒度级别公开有关其操作的信息。您可以编写一个外部 UI 处理程序来启动修复操作(::MsiConfigureProduct()
设置后调用::MsiSetExternalUI()
),然后在调用操作后评估组件状态InstallValidate
。这应该能够让您获得与组件操作状态写入日志文件相同的信息。
这并不能回答您的问题,但根据您的兴趣,我建议您阅读:
应用程序弹性:解锁 Windows Installer 的隐藏功能
“挑战#1:自我调用的弹性”这个话题真的很有趣。它描述了应用程序与其安装程序之间的共生关系。MSI API 旨在供应用程序使用以增强运行状况检查,而不仅仅是通过 COM 激活和广告快捷方式的使用来简单地调用。
真的很不幸,在过去的 14 年里,很少有应用程序会费心把它带到这个水平。