2010-05-24 72 views

回答

-1

只是不包括任何UI/UIRef元素,然后没有UI将包含:)

+1

这是非常有限的价值。让用户双击MSI并在没有任何结果的确认或状态的情况下进行安装是一种非常不理想的用户体验IMO。如果你的MSI中的一部分被另一个处理用户界面的程序(Think Visual Studio,SQL Server ..)共同改变,那么这很好,但如果它是一个独立的MSI,我认为它只是一个工作的一半。 – 2012-05-31 19:34:50

+0

我同意这绝对是有限的价值,但它确实回答OP。如下所述,更好的(或“正确的”)解决方案是使用msiexec参数。 – saschabeaumont 2012-06-04 23:34:02

+0

将msiexec.exe与命令行参数一起使用,指定使用no-ui的安静模式即可。 – nil 2013-02-11 18:30:44

54

Windows Installer(MSI)使用以下命令行参数保持沉默:

静默安装或无声的重大升级:

msiexec.exe /i foo.msi /qn 

静音次要升级:

msiexec.exe /i foo.msi REINSTALL=ALL REINSTALLMODE=vomus /qn 

静默卸载:

msiexec.exe /x foo.msi /qn 

可执行路径:

C:\Windows\system32\msiexec.exe 
+1

很好的答案。轻微的问题是,如果您必须通过UAC对话框授权安装,则不会使用/ qn提供任何安装。但是,如果您使用/ qb,则可以选择授权。 – Steztric 2015-06-22 13:11:35

+1

这是设计的功能。静默安装根据定义是非交互式的,并且UAC提示是交互。未能在30秒内点击yes将无法安装。在调用安装之前,您的调用过程应该已经升级。 – 2015-12-24 14:24:39

+0

我也面临同样的问题,当我尝试在完全UI模式下通过双击MSI运行MSI时,它会提示我一个UAC(程序名称,发布者:未知,文件来源),我需要选择yes才能继续安装但我的需要是在非交互模式下使用cmd msiexec命令安装MSI(基本上它应该在UAC中自​​动采用yes),但在任何情况下都不会发生(/ q/a/qn)。我正在使用一种工具在100多台服务器上部署MSI,并在内部创建一个导致失败的命令(msiexec/i /qn)。任何人都有解决方案吗? – 2017-08-30 07:34:51

4

所有MSI安装是否通过维克斯创建或不能够通过命令来控制线参数。因此,您可以使用UI创建安装程序并仍然安装它,不需要从安装程序中删除UI,只需在命令行中将其禁用即可。记住,一定要添加的升级元素在你第一次安装,以便后续的将匹配WiX的创建可以在命令行中,而不需要用户输入运行

+0

WiX升级元素设置UpgradeCode属性并在升级表中包含一行。从技术上讲,第一台MSI不需要升级。它只需要具有UpgradeCode属性。如果您忘记这么做,有一些技巧会在后续MSI中涉及“假”升级表条目,并使用将操作属性设置为第一个MSI的ProductCode的自定义操作。尽量避免这一点。 :-) – 2014-02-24 16:05:35

11

安装程序.EXE的使用这些命令行参数之一:

  • /quiet - 不显示任何UI
  • /passive - 显示一个UI,但不需要用户输入。基本上只是显示一个安装进度条

此答案基于WiX 3.9。