【问题标题】:Disable MSI auto-repair on installed program禁用已安装程序的 MSI 自动修复
【发布时间】:2019-08-29 17:38:47
【问题描述】:

我看到很多人发布了有关此问题的帖子,但尚未找到解决方案。我有一个程序,每隔一段时间就会出现一个问题,Windows 安装程序会尝试修复程序,但它实际上并没有做任何事情,它只是挂起。我检查了 Windows 事件日志,它说丢失的文件没有丢失。有时重新启动会修复它。

我如何才能完全禁用已安装程序的自我修复功能而不将其从注册表中完全删除?以及如何防止将来的安装出现此问题?谢谢

【问题讨论】:

  • 经验法则:如果您在寻找编程语言标签时遇到困难,您的问题可能跑题了。

标签: windows windows-installer installation repair


【解决方案1】:

英特尔:您能概括一下这是什么类型的应用吗?可以 有 COM 组件吗?它是否具有 GAC 安装功能?有没有 服务?它有很多注册表信息吗?是你自己的吗 包还是第三方包?等等……

自我修复:这是个大问题,但也很简单。最简洁的解释大概就是这个:Why does the MSI installer reconfigure if I delete a file?(推荐)。

本质上:Windows Installer 会尝试维护之前的文件 最初安装的。


外部原因:自行修复通常有 3 个主要原因:1) MSI 封装设计不当,存在设计缺陷, 2) 来自外部原因的干扰,从恶意软件到管理脚本,再到系统上任何改变“某些东西”的东西 - 真的,以及 3) Windows 设计更改会触发意外错误旧版软件包。

More here in section: "The Primary Causes of Self-Repair"。 鉴于您的问题的间歇性,它可能是一种安全性 软件问题?


空白 GUID:有一种方法可以通过具有空白 GUID 的组件安装文件。然后它们被简单地安装并且不再检查。这应该可以消除自我修复问题,但这也意味着文件永远不会被更新。

其他“解决方案”:您不能尝试禁用 Windows Installer 服务或其他方式来解决此问题,请尝试以下实用建议:Self-repair - finding real-world solutions (第 5 节)。例如,您可以使用非广告的快捷方式,解决 COM 注册问题等...关于该问题还有这篇文章:How do I avoid triggering MSI self-repair with my WiX / MSI package?(推荐)。


Recent answer on a similar issue.


详细的自我修复:比任何人都想知道的自我修复更多。这是我之前创建的一个部分,包括它的“一目了然”:

  1. Self-repair - explained
  2. Self-repair - finding real-world solutions(第三方包)
  3. Self-repair - how to avoid it in your own package(你自己的包)

链接

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-17
    • 1970-01-01
    • 2010-09-15
    • 2017-06-18
    相关资源
    最近更新 更多