我知道有不同的方法可以使用UI(控制面板)或CLI(msiexec.exe)修复安装,但是:
如何仅列出在没有真正修复的情况下执行的操作。即显示“文件xyz丢失。”或者“自安装以来修改文件abc”而不恢复它们。 (文件安装为Vital和KeyFile)。
答案 0 :(得分:3)
Windows Installer不会以该粒度级别公开有关其操作的信息。您可以编写一个外部UI处理程序来启动修复操作(在设置::MsiConfigureProduct()
后调用::MsiSetExternalUI()
)然后在调用InstallValidate
操作后调整组件状态。这应该能够为您提供写入组件操作状态的日志文件的相同信息。
答案 1 :(得分:2)
这并不能回答你的问题,但根据你的兴趣,我建议你阅读:
Application Resiliency: Unlock the Hidden Features of Windows Installer
主题“挑战#1:自我调用的弹性”非常有趣。它描述了应用程序与其安装程序之间的共生关系。 MSI API旨在被应用程序用于增强运行状况检查,而不仅仅是通过COM激活和使用广告快捷方式来调用。
非常不幸的是,过去14年中非常非常非常少的应用程序都不愿意将其提升到这个水平。