2014-04-02 48 views
1

我想在我的NSIS脚本中使用此msiexec命令来安静地安装MSI软件包。为什么“msiexec/qn”仍然显示命令提示符?

Exec '"msiExec" /qn /package "$INSTDIR\mypackage.msi" INSTALLDIR="$destinationDir"'

但它仍然显示一秒钟的命令提示符。
我也尝试了参数/quiet,但没有任何区别。

有没有其他方法安静地安装MSI软件包“全”?

+0

MSIEXEC是一个GUI应用程序谁,所以我真的不知道哪里这个控制台从何而来。您可能想要使用ExecWait和完整路径... – Anders

回答

1

Exec '"msiExec"'不显示我的系统上的控制台。

难道这是msi中的自定义操作吗?如果您有Process Monitor监视系统并使用Ctrl + T,你应该能够看到conhost.exe的parent是Windows7的上+

+0

这是什么'Exec'命令,它来自哪里? (你怎么解雇它?) –

+0

@mattwilkie Exec是一个NSIS指令... – Anders

2

听起来像在命令行中有错误。虽然我对NSIS不熟悉。一个正常的安静模式MSI安装命令是:

msiexec.exe /I "C:\TestInstall.msi" /QN

尝试在这个线程运行的工具来帮助你处理MSI command line复杂:How to interactive a silently installing msi? (Progress data and cancel it)。这是一个非常有效的工具,名为“Windows Installer Command Line Builder”,来自Wise Solutions。您可以使用它来尝试命令行,直到它按照您希望的方式运行。

当您想要应用多个转换,设置多个属性并启用日志记录时,msiexec.exe命令行可能会变得非常复杂。下面是一个示例:

msiexec.exe /I "C:\Installer.msi" /QN /L* "C:\logs\msilog.log" ALLUSERS=1 TRANSFORMS="C:\Transform.mst;C:\1031.mst" 
+0

我认为命令行不是问题,因为它正在执行我期望的操作,而不运行“/ qn”参数。 – Joe

+0

当你说它正在显示命令提示符时,你看到了什么?我从来没有见过,我想知道这是否与NSIS脚本有关。如果您从cmd类型的命令中看到命令窗口,那么它不是msiexec,而是NSIS使用类似命令行提示符运行msiexec。 – PhilDW

+0

@PhilDW:Exec/ExecWait是CreateProcess的一个很小的包装,像nsExec这样的控制台执行程序是插件... – Anders

相关问题