【问题标题】:some computers, the "Windows Installer" is retrieved again from the C # program that was loaded when the program was run在某些计算机上,“Windows Installer”是从程序运行时加载的 C# 程序中再次检索到的
【发布时间】:2017-10-12 11:35:05
【问题描述】:

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

Windows 安装程序 >>> "Windows 正在配置(产品名称),请稍候"

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

【问题讨论】:

  • 会建议配置/安装未完成,您应该阅读日志

标签: c# windows installation windows-installer setup-project


【解决方案1】:

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

它是 Windows Installer 的一项功能,它修复已安装的被删除的项目,因此如果应用程序更改或删除文件或注册表项,那么 Windows 将需要重新安装它们。这与进入程序和功能并在产品上进行维修相同。

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

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

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

【讨论】:

    【解决方案2】:

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

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

    在某些情况下,自我修复无法解决差异,然后不断重复。 基本上您需要确定是什么组件导致了差异并因此触发了修复。

    也许你可以先试试 Stefan Kruger 的 msifaq,它简洁且中肯:Windows Installer launches unexpectedly, for no obvious reason。

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


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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 2023-03-26
        • 1970-01-01
        • 2023-03-23
        • 2018-11-12
        • 1970-01-01
        • 2010-09-13
        • 2018-07-27
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多