2012-08-07 69 views
-1

我正在創建一個安裝程序,它可以一次安裝多個程序和文件包,其中一個是WinZip,我希望WinZip安裝程序在後臺運行,從我使用/s收集的內容將使其以靜默模式運行,但安裝程序仍然不會安裝。我相信這是因爲在WinZip安裝過程中必須進行選擇。所以我的問題是我怎麼能設置這個在後臺默默安裝WinZip?我需要一個應答文件嗎?如果是這樣,我該如何獲得設置?任何幫助將是偉大的!如何使用NSIS爲Winzip安裝程序設置answer文件/ .ini

*我在NSIS文件的代碼片段:

Section 
IfFileExists "C:\Program Files\WinZip\WINZIP32.EXE" Dont_Install 
SetOutPath $TEMP 
File "Installerfiles\WinZip165.exe" 
DetailPrint "Starting Winzip installation" 
ExecWait "/s WinZip165.exe" 
Delete $TEMP\WinZip165.exe 
SetOutPath $INSTDIR 
Goto done 
Dont_Install: 
MessageBox MB_OK "You seem to have this program \ 
(WinZip) already installed" 
done: 
SectionEnd 

*注意:我看到的有一個靜默安裝的其他問題,這個問題是比較WinZip的具體和有關我將如何建立一個答案文件,如果需要的話。

回答

2

ExecWait "/s WinZip165.exe"顯然是錯誤的,應該是ExecWait '"$TEMP\WinZip165.exe" /S',但我不認爲WinZip的使用基於NSIS安裝...

他們提供一個.MSI,你可能想看看那個。他們的知識庫包含一些有用的提示,如thisthis。你也可以find谷歌搜索的一些其他提示...

如果您有任何其他有關其靜默安裝模式的問題,你應該聯繫WinZip support

0

由於我無法評論Anders響應,因爲我還沒有足夠的聲望,下面是我個人用於靜默安裝msi安裝程序的命令,從我已經多次使用的安裝程序中複製安裝多個程序。

ExecWait '"msiexec" /i "$TEMP\MSI Installer.msi" /qn' 

這是假設您採取安德斯建議並嘗試使用msi版本的WinZip。

此外,安德斯提到您的代碼中的錯誤之一,您不使用完整路徑到您正在嘗試運行的安裝程序。我還想指出,將單詞引用的路徑總是一個好主意。例如,當你這樣做:

Delete $TEMP\WinZip165.exe 

添加單引號,像這樣:

Delete '$TEMP\WinZip165.exe' 

這也適用於當你做你的

SetOutPath '$TEMP' 

SetOutPath '$INSTDIR' 

當你可以擺脫大部分情況如果你遇到了一個有空格的路徑,如果你試圖將路徑傳遞給一個宏或者某個東西,它會給你帶來麻煩,因爲它在空格上劃界並且把字符串分成多個部分。無論何時處理可能有空間的Windows路徑,這都只是一個好習慣。

順便說一句,不接受這個答案,我打算它只是安德斯已經說過的後續。

相關問題