【问题标题】:How to prevent restart dialog caused by MSI 1610 error如何防止由 MSI 1610 错误导致的重启对话框
【发布时间】:2021-01-29 09:03:06
【问题描述】:

我有一个使用 InstallShield 创建的设置。在升级或卸载期间,在安装验证过程之后,我收到一个带有以下消息的警报对话框:

“安装程序必须更新系统运行时无法更新的文件或服务。如果您选择继续,则需要重新启动才能完成安装程序”。

我在 MSI 日志文件中发现以下内容:

MSI (s) (4C:78) [18:17:52:182]: RESTART MANAGER: 检测到具有 id 4、友好名称“系统”、类型为 RmCritical 且状态为 1 的应用程序将文件 [s] 保存在采用。 MSI (s) (4C:78) [18:17:52:182]:RESTART MANAGER:确实检测到关键应用程序持有正在使用的文件,因此需要重新启动。 MSI (s) (4C:78) [18:17:52:182]:注:1: 1610

我想了解我收到此消息的原因以及如何避免此消息。

(我已经检查了以下注册表项,它有 oldmsedge.exe,我认为它与此问题无关)

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\FileRenameOperations

【问题讨论】:

  • 您在安装任何服务吗?请参阅下面的答案。

标签: windows windows-installer exe installshield installshield-le


【解决方案1】:

您可以设置这些属性:

REBOOT=ReallySuppress MSIRESTARTMANAGERCONTROL=禁用

【讨论】:

    【解决方案2】:

    挂起的文件重命名FileRenameOperations 键包含等待更新的文件和资源列表(和/或重命名)在重新启动/重新启动时。这确实可以触发您看到的警告。安装程序发现您的安装程序尝试替换的正在使用的文件,因此希望在所有锁定释放后(通过重新启动)重新启动计算机以将新文件版本放置到位。

    Windows 服务:有很多东西可以防止文件被替换。一个常见问题是在尝试替换服务正在使用的文件之前,您没有在设置中正确关闭运行的服务。修复此问题,让您的设置关闭相关服务。 There are mechanisms in MSI to do so(只要服务正常工作 - 完全不保证)。

    正在运行的应用程序:通常建议您在安装一个设置。这是为了释放类似的文件和资源锁,会导致文件覆盖或注册表更新失败。

    其他锁定:文件也可以被其他机制锁定,例如恶意软件扫描程序、防病毒或类似的安全程序。或者其他一些事情,例如备份机制、用户手动打开的临时锁定文件(如果应用程序实际上锁定了文件)、ACL 权限问题,最糟糕的是:真正的恶意软件。以及一些进一步的技术细节。

    Restart Manager:Windows 具有重新启动管理器功能来处理此问题 - 文件和资源被锁定且无法更新。它本质上是一种应用程序以标准化方式自行关闭的方式 - 通过 API(方法调用) - 以便设置和系统进程可以指示相关应用程序:"shut yourself down" - 然后系统将在适当的时候重新启动应用程序。

    技术Advanced Installer - 领先的部署软件制造商 - 对making your application support the Restart Manager feature 的技术方面有一定的了解。还有:more on RestartManager here


    链接:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-13
      • 2013-07-29
      • 1970-01-01
      • 1970-01-01
      • 2019-10-10
      • 2015-04-11
      相关资源
      最近更新 更多