启动应用程序时,我该怎么做才能触发重复的,无休止的Windows Installer自我修复?

时间:2017-08-16 14:20:10

标签: wix windows-installer virtualization comaddin

Windows Installer自我修复可能会导致开发人员系统管理员最终用户出现问题。如果您的MSI体验有限,找到解决方案可能会很困难。

这是一个Q& A风格的答案,旨在作为解决自我修复问题的检查清单 。以下是一些常见问题场景:

  • 在工作站上启动应用程序时,可能会发生重复的Windows Installer自我修复。如何解决这个问题,或者如何禁用组件以便它再也不会发生?
  • 可能会部署WiX安装程序,并且每当您尝试启动该应用程序时,您都会看到重复的Windows安装程序自我修复。
  • 启用或安装MS Office插件时,您会在应用程序启动一个或多个MS Office应用程序时遇到持续的Windows Installer自我修复。
  • 在VB6或VBA中处理旧版解决方案时,在启动主开发人员IDE时,自我修复会启动不相关的产品。
  • 在Outlook,Excel或Word或类似应用程序中打开表单时,自我修复将启动其他供应商的不相关产品。

关键字:Windows Installer意外启动。 MSI意外显示。每次都会出现Windows Installer。打开应用程序启动Windows Installer。 Windows Installer自我修复。包如何自我修复。微星自我修复最佳实践。 Windows Installer修复。自我修复。禁用Windows Installer。 Windows Installer反复运行。应用程序快捷方式启动安装程序。 Windows Installer意外出现。

2 个答案:

答案 0 :(得分:0)

包装内一定有问题。 找到问题。

  1. 清除事件日志 - 应用程序。

  2. 使用AdminRigths

  3. 以用户身份运行您的应用程序
  4. 应用程序应在自我修复后运行。您可以运行两次,如果不进行自修复,则在您第二次运行后,这意味着组件有问题需要在MachinePart中创建条目,如HKLM或Programfiles或Windows文件夹。

  5. 打开您的事件日志,并查找包含源MSIInstaller的条目。

  6. 带警告的条目会告诉您哪些功能和组件会导致自我修复。

  7. 如果您可以在这里向我们显示该warinig的日志,我们可以告诉您有关您的问题的更多信息,但一般来说,eventviewer中的消息很清楚,并说明缺少什么资源。

答案 1 :(得分:0)

由于每次启动应用程序时都会发生这种情况(并且我认为您允许修复运行完成),最可能的原因是该应用程序删除了受保护的内容"通过Windows Installer,此类注册表项或文件。快捷方式启动修复机制以重新安装缺少的项目,MsiInstaller条目将告诉您它是什么。

一般来说,维修是一件好事,因为它们允许用户修理已安装的产品,如果它已损坏。如果按照设计安装了但不需要修复的资源,那么在WiX中将组件ID设置为null,因为这是防止修复某些文件的文档化方法,请参阅此处的ComponentId备注:

https://msdn.microsoft.com/en-us/library/windows/desktop/aa368007(v=vs.85).aspx