自我修复:您看到的很可能是 Windows Installer 自我修复。如果文件被意外修改,这是一种将文件放回原位的机制,但这个最初的目的可能会引发很多问题并导致无休止的修复循环——这可能就是这里发生的事情。Very likely another product has been installed and an un-fixable error situation now exists that triggers continued and failed attempts to repair via MSI self-repair. The conflict situation must be identified with logging and event viewer debugging and a suitable fix has to be applied
(现实世界的修复)。
简洁说明:这是关于我所拥有的自我修复或“弹性”真正含义的最简明解释:
如果我删除文件,为什么 MSI 安装程序会重新配置?
重新启动管理器:重新启动管理器功能- 正如您自己所说的(其他人可能会阅读) - 只是一种设置重新启动应用程序的方法,而不是通过“使应用程序能够自行关闭并以受控方式重新启动”来要求系统重新启动。
- 发生的情况可能是您的服务未能使用其本机启动/停止程序及时关闭 - 或者 MSI 未尝试使用内置的 MSI 服务控制机制重新启动服务。您的服务要么没有及时停止,要么完全没有停止。也许。我想这可能会触发重启管理器事件。当然,如果您将 REINSTALLMODE 设置为
"amus"
- 强制覆盖所有文件,无论版本如何。
- 看到这里的人是开发人员,也许是如何在您的应用程序中实现重新启动管理器支持的技术示例:如何向我的应用程序添加对 Windows 重新启动管理器的支持?(高级安装程序)。
- 大量重启管理器链接和信息(中页)
默认 MSI 日志记录:一个调试起点是正确记录所有 MSI 操作- 每当您安装、重新安装或修复时,临时目录中都会有一个日志文件(某些系统管理员并不总是可以接受)。"Globally for all setups on a machine"
您可以按照上述链接部分中的过程为所有 MSI 安装启用日志记录
详细的自我修复:我之前写过很多关于意外自我修复的文章。比任何人都想知道的要多。这是一个非常愚蠢的问题,由于很少有人熟悉 Windows Installer 的操作,因此确实会导致解决非常昂贵的问题:
- 自我修复 - 解释
- 自我修复 - 寻找现实世界的解决方案
- 自我修复 - 如何在您自己的包裹中避免它
调试:以上答案中提供了以下所有信息,但这里有一些快速提示:
待重启:这台机器多久重启一次?许多机器都注册了许多挂起的重新启动,这些重新启动从未完成并且可能导致问题。触发重新启动(警告)可能涉及许多注册表位置。获取-PendingReboot-查询。还有一个类似的 PowerShell 脚本。
锁定问题:只想提一些应用程序以非常低级的方式锁定资源的问题,例如防病毒和恶意软件保护套件。