2014-04-02 49 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

相關問題