【问题标题】:Wix Toolkit - MSI Installer - Window's pop-up constantly appears when installed application is launchedWix Toolkit - MSI 安装程序 - 启动已安装的应用程序时,窗口的弹出窗口不断出现
【发布时间】:2019-05-12 20:03:31
【问题描述】:

我有一个 WiX 脚本,它创建一个安装程序,该安装程序在 Microsoft Windows 7 和 10 机器上静默放置应用程序。没有选项,因此不需要 GUI。

一些客户端抱怨当他们启动已安装的应用程序时(在成功安装很久之后),Windows 弹出 MSI 安装程序消息“请稍候,Windows 正在配置 [APPLICATION_NAME]”。他们说这种情况每次都会发生,并且运行时间大约与最初安装所需的时间一样长。

我以前得到的更多,并认为这是因为一些已安装的文件已被修改。我得出的结论是,当 MSI 运行第二次和随后的时间时,它会用安装程序中的原始文件覆盖修改后的文件。

由于这些文件打算在安装后进行修改,因此我在其组件定义中添加了“NeverOverwrite="yes"',如下所示:

<Component Id="..." NeverOverwrite="yes" Directory="..." Guid="...">

到目前为止,这似乎解决了问题。有什么我应该关注或进一步调查的想法吗?

【问题讨论】:

    标签: windows wix windows-installer installation


    【解决方案1】:

    简答:这是一个 MSI 自我修复问题。

    1. 找出触发自我修复的组件。详情如下。
    2. 通过更改设置消除冲突情况来纠正这种情况。

    自我修复:这是 MSI 常见的经典“意外自我修复”问题满足特定条件时打包。我已经写了很多次关于这个问题的文章,我会回收一些答案。我认为最容易获得的答案可能是这两个(请至少阅读第一个链接):

    使用事件日志进行调试:要确定哪个 MSI 组件触发了自我修复,您需要通过检查事件日志进行调试。 Stefan Kruger 的常见问题解答条目对此进行了描述:Windows Installer launches unexpectedly, for no obvious reason。或者阅读 Flexera 的文章Understanding Windows Installer (MSI) Self-Repair(具有漂亮的屏幕截图)。

    组件和产品:当您有一个有问题的组件 GUID 时,您可以通过运行以下 VBScript 来确定它属于什么产品:Look Up Products for Component。它可能是另一种产品 - 如果不只是打开产品的 MSI 文件并找到组件的关键路径。

    详细信息:以及带有完整解释的非常深入的答案。尝试使用粗体的第三个链接解决实际问题:

    1. Self-repair - explained
    2. Self-repair - finding real-world solutions
    3. Self-repair - how to avoid it in your own package

    其他资源

    【讨论】:

    • 非常感谢。我尝试了许多搜索,但无法想出“神奇”的术语来找到有用的结果。这让我在接下来的几天里可以阅读。
    • 是的,要阅读的内容很多。你的问题可能很简单。只需在事件日志中找到组件 GUID,然后打开您的 MSI 即可找到匹配的组件。然后找出关键路径是什么,然后从那里开始。什么类型的应用程序?您安装了哪些运行时?
    猜你喜欢
    • 2011-06-12
    • 2019-05-27
    • 2019-05-25
    • 1970-01-01
    • 1970-01-01
    • 2021-07-03
    • 1970-01-01
    • 1970-01-01
    • 2011-08-17
    相关资源
    最近更新 更多