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

问题描述:

我使用VSI_bundle.exe打包了C#应用程序,并且在某些PC上安装了以下消息在尝试运行应用程序时出现。有些计算机,从程序运行时加载的C#程序中再次检索到“Windows安装程序”

Windows安装程序>>> “请稍候Windows配置(产品名称)”

的应用程序将运行正常,但是当我将其关闭并重新打开,我又得到了同样的情况。我怎样才能解决这个问题?

+0

会提示config/install没有完成,您应该阅读日志 – BugFinder

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

启动通过“advertised shortcut”(好赛门铁克链接主题文章)的应用程序将引发关键路径检查您的MSI,以确定您的产品是否正确安装。在这个过程中会发现差异,并且会引发自我修复以安装缺少的内容。

在某些情况下,这种差异不能通过自我修复来解决,然后它会一直枉费。 基本上,您需要确定哪些组件导致差异,并因此触发修复

也许你可以先尝试斯特凡·克鲁格的msifaq,它是简洁给点Windows Installer launches unexpectedly, for no obvious reason

我已经写了关于自我修复的次数太多,较短的答案之一可能是这一个:Why does the MSI installer reconfigure if I delete a file?


以供将来参考我包括在Windows安装程序的自我修复或话题的一些链接“弹性”:

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

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

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

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

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

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