【问题标题】:Creating a custom action in Wix for use in silent installation在 Wix 中创建自定义操作以用于静默安装
【发布时间】:2011-06-28 23:53:59
【问题描述】:

我们使用 Wix 创建我们的 MSI 安装程序。我们有一些自定义操作在正常使用带有 GUI 的安装程序时效果很好,但是当使用静默安装(使用 "msiexec /qb /i" )时,自定义操作将不会运行。

我该怎么做才能让它们通过 Wix 工作?

【问题讨论】:

    标签: wix windows-installer silent


    【解决方案1】:

    我建议您阅读(如果需要,可以多读几遍……一开始我花了一些时间):

    Installation Phases and In-Script Execution Options for Custom Actions in Windows Installer

    在编写问题时需要考虑很多事情,详细信息都在这篇写得很好的文章中。基本上听起来你只将自定义操作放在 UI 序列中而不是执行序列中,但除此之外还有其他事情你应该确保你做得正确。

    【讨论】:

      【解决方案2】:

      他们只是不运行还是失败?它们可能会被限制在安静模式下运行(请参阅UILevel 属性)。如果他们失败了,他们可能会缺少一些来自用户在完整 UI 模式下的输入信息(属性)。

      无论如何,详细日志应该会给你更多信息。

      【讨论】:

      • 谢谢,但是如何在 Wix 中设置 UILevel 属性?
      • 它由安装程序设置,具体取决于例如使用 (/q) 运行 msiexec 的参数。您可能想要做的是检查此属性并运行自定义操作或不运行。对吗?
      【解决方案3】:

      您可以在 ExeCommand 中设置“[UILevel]”并通过参数访问它。

       <CustomAction Id="customActionId" BinaryKey="InstallerProgram" ExeCommand="[UILevel]" Execute="deferred" Return="check" />
      
      
          static void Main(string[] args)
          {
           var uiLevel = args[0]; //==> [Here is the UILevel][1]
          }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-10-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-02-22
        • 1970-01-01
        • 1970-01-01
        • 2013-04-26
        相关资源
        最近更新 更多