我们使用Wix来创建我们的MSI安装程序。我们有一些自定义操作在通常使用GUI时使用安装程序时效果很好,但是当使用静默安装(使用“msiexec / qb / i”)时,自定义操作将不会运行。
如何让它们通过Wix工作?
答案 0 :(得分:6)
我建议你阅读(如果需要,可以多次......起初我花了一些时间):
Installation Phases and In-Script Execution Options for Custom Actions in Windows Installer
在撰写问题时需要考虑很多事情,详细信息请参见写得很好的文章。基本上,听起来你只是将自定义动作放在UI序列中,而不是执行序列,但除此之外还有其他一些事项,你应该确保你做得正确。
答案 1 :(得分:0)
他们根本不跑或失败?情况可能是它们不能以安静模式运行(参见UILevel属性)。如果它们失败,它们可能缺少来自完全UI模式的用户的一些输入信息(属性)。
无论如何,详细日志应该会为您提供更多信息。
答案 2 :(得分:0)
您可以在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]
}