一些计算机,“Windows安装程序”再次从程序运行时加载的C#程序中检索

我使用VSI_bundle.exe打包了一个C#应用程序,当它安装在某些PC上时,尝试运行该应用程序时出现以下消息。

Windows Installer >>>“请稍候,Windowsconfiguration(产品名称)”

然后,应用程序将运行良好,但是当我closures并重新打开时,我再次遇到同样的情况。 我怎样才能解决这个问题?

正如其他人指出的,这似乎是Windows Installer自我修复或“弹性”问题。

通过“ 广告快捷方式 ”启动您的应用程序(赛门铁克链接主题的文章)将触发您的MSI的关键路径检查 ,以确定您的产品是否安装正确。 在这个过程中,会发现一个差异,并引发一个自我修复来安装缺少的东西。

在某些情况下,这种差异不能通过自我修复来解决,而是一直徒然重复。 从本质上讲,您需要确定哪些组件导致差异,从而触发修复

也许你可以先尝试一下Stefan Kruger的msifaq,但是很简洁 : Windows Installer意外启动,原因不明 。

我已经写了很多次自修,其中一个较短的答案可能是这样的: 为什么MSI安装程序重新配置,如果我删除一个文件?


为了将来的参考,我将包含一些有关Windows Installer自我修复或“弹性”主题的链接:

  • 自我修复的全面解释, 详细全面 : 如何确定是什么原因导致重复的Windows Installer自我修复?
  • 解决方案专注于自我修复的描述, 试图找到真实世界的解决方案 : 当启动应用程序时,我会做什么触发重复,无休止的Windows Installer自我修复?
  • 开发人员的自我修复问题,首先避免了这个问题 : 如何避免使用我的WiX / MSI软件包触发MSI自我修复? (也许也试试这个, 应该是 专门为开发人员 快速阅读编写的 )。

消息对话框表示已安装的产品由于损坏而正在修复,与首次安装时不一样。 Windows事件日志(应用程序)将有一个MsiInstaller条目说有关ProductCode和缺少的组件。

这是Windows Installer的一项功能,它可以修复已删除的已安装项目,因此如果应用程序更改或删除文件或注册表项,则Windows将希望重新安装它们。 这就像去程序和功能,并对产品进行修复一样。

修复它取决于它为什么修复。 例如,应用程序是否删除文件或注册表项,如果是的话,为什么?

有时候,人们安装MSI的DISABLEADVTSHORTCUTS设置为1,以防止快捷方式进行修复,但是这不能阻止所有的修复,并且可能掩盖了应用程序正在移除所需文件的事实。

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

检查您的事件查看器的Windows安装程序相关的消息。 大多数情况下,它会显示触发修复的组件ID,菲尔提到。 采取这个GUID和搜索您的安装程序或使用像InstEd工具! 打开MSI并搜索组件表中的GUID。