在已安装的程序上禁用MSI自动修复

问题描述:

我已经看到很多人发布有关此问题的消息,但尚未找到解决方案.我有一个程序,有时Windows安装程序会尝试修复该程序,但它实际上并没有执行任何操作,只是挂起.我检查了Windows事件日志,并说缺少丢失的文件.有时重新启动可以解决该问题.

I've seen tons of people post about this issue but have yet to find a solution. I have a program that every once and a while will have an issue where the windows installer tries to repair the program, but it doesn't actually do anything, it just hangs. I checked the Windows event log and the file it says is missing is not missing. Sometimes rebooting fixes it.

如何在不从注册表中完全删除的情况下完全禁用已经安装的程序的自我修复?以及如何防止以后的安装出现此问题?谢谢

How can I disable the self repair completely on a program that's already installed without removing it completely from the registry? And how can I prevent future installations from having this problem? Thanks

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

Intel: Can you please summarize what kind of application this is? Does it have COM components? Does it feature GAC installation? Does it have services? Does it have a lot of registry information? Is it your own package or a third party package? Etc...

自我修复 :这是一个大问题,但很简单.最简洁的解释可能是这样的:

Self-Repair: This is a big issue, but a simple problem. The most concise explanation is probably this one: Why does the MSI installer reconfigure if I delete a file? (recommended).

本质上 :Windows Installer尝试维护以前 原始安装.

Essentially: Windows Installer tries to maintain the files that were originally installed.


外部原因 :自我修复通常有3个主要原因: 1) 设计不良,设计有缺陷的MSI软件包, 2) 受到外部原因的干扰,从恶意软件到管理脚本,再到系统上任何更改某些内容"的内容,均会受到干扰. -实际上,并且 3) Windows设计更改会触发旧版程序包中的意外错误.


External Causes: Self-repair usually have 3 main causes: 1) Badly designed MSI packages with design flaws, 2) Interference from external causes ranging from malware, to admin scripts to anything on the system that changes "something" - really, and 3) Windows Design changes that trigger unexpected errors in legacy packages.

此处更多内容:自我修复的主要原因" . 考虑到您问题的间歇性,可能是安全的 软件有问题吗?

More here in section: "The Primary Causes of Self-Repair". Given the intermittent nature of your problem it could be a security software problem?


空白GUID :有一种方法可以通过具有空白GUID的组件安装文件.然后,只需简单安装它们,而无需再次检查.这样可以消除自我修复问题,但是这也意味着该文件将永远不会更新.


Blank GUIDs: There is a method where you can install the files via components that has a blank GUID. Then they are simply installed and never checked again. This should eliminate self-repair problems, however it also means the file will never be updated.

其他解决方案" :您不得尝试禁用Windows Installer服务或类似的方法来解决此问题,请尝试以下务实的建议: 自-修复-查找实际解决方案 (第5节).例如,您可以使用未发布的快捷方式,解决COM注册问题等.此问题也涉及这一部分: 有关类似问题的最新答案.

详细的自我修复 :比任何人都想了解的自我修复更多.这是我之前创建的部分,其中包括其可凝视性":

Self-Repair In Detail: More than anyone wants to know about self-repair. This is a section I created before, including it for its "glanceability":

  1. 自我修复-解释
  2. 自我修复-查找实际解决方案(第三方软件包)
  3. 自我修复-如何避免在自己的包装中(您自己的包装)
  1. Self-repair - explained
  2. Self-repair - finding real-world solutions (third party packages)
  3. Self-repair - how to avoid it in your own package (your own packages)


链接 :


Links:

  • Similar: Visual Studio 2015 msi build initiates another installation
  • RestartManager causes worker role to restart
  • What is the use of Repair option in a msi installer and what does it really do (internally)?
  • Disable MSI auto-repair on installed program