通过属性的WiX静默安装条件

时间:2019-06-03 08:22:44

标签: wix

是否可以通过WiX安装程序中的条件在没有“ / q”参数的情况下进行静默安装?

我有一个UIRef和一个值为1的无声属性,现在如果该属性为1,我想安装无声。

1 个答案:

答案 0 :(得分:0)

WiX GUI :从来没有说过这是诚实的,我不建议这样做。一些MSI文件根本没有GUI,然后安装时就没有任何GUI-显然。我想这是不可接受的一种选择。

条件 :我快速浏览了一下,并调整了 WelcomeDlg中的 InstallUISequence 条目可能有用,尽管我发现它的设计很奇怪:

  1. 使用Orca并将此条件添加到 WelcomeDlg (NOT Installed OR PATCH) AND (NOT SILENT=1)
  2. 还要在 Property table 中添加一个条目; SILENT=0 ,以避免在默认运行模式下保持沉默

现在,您可以尝试双击MSI,然后会看到对话框。如果使用下面的命令行,应该没有对话框,但是您会看到一个进度条,并且会看到UAC海拔提示:

msiexec.exe /i MySetup.msi SILENT=1
  

WiX片段 :这是您可以尝试使用的标记。没有保证! :-)。如果可以,我可以用完整的“小型可运行”样本代替   要求-以下是您可以“串流”进行工作的内容   设定。如果要使静默卸载,修改和修复,还需要更改维护模式/卸载对话框。进行无提示的修改是没有道理的。

     

请记住,标记是“ hack”,尚未完全   已在所有安装模式下进行测试: install modify ,    repair self-repair patch resume suspended uninstall major upgrade uninstall etc... -请相应地进行测试-总是有惊喜:

<..>

<Property Id="SILENT" Value="0" />
<UIRef Id="WixUI_Mondo" />

<..>

<InstallUISequence>
  <Show Dialog="WelcomeDlg" After="ResumeDlg">(NOT Installed OR PATCH) AND (NOT SILENT=1)</Show>
  <Show Dialog="ExitDialog" OnExit="success">(NOT SILENT=1)</Show>
</InstallUISequence>

<..>

注意! 这样的结构在现实生活中往往适得其反。突然,您发现在某些晦涩的安装模式(挂起的恢复,修补,修改或类似操作)中从未想到的问题。如果要使用此功能,请确保测试良好。

请注意,还有其他对话框(例如修改和修复(维护模式对话框))仍会显示。如果您希望它们的行为不同,则也必须对其进行条件处理(并可能保留 SILENT 属性来确定i是否要禁止显示对话框)。