[英]How to set different header bitmaps for different NSIS installer's pages?
[英]How to set up answer file/.ini for WinZip installer using NSIS
我正在創建一個同時安裝多個程序和文件包的安裝程序,其中一個是WinZip,我希望WinZip安裝程序在后台運行,使用/s
收集/s
將使其在靜默模式下運行,但安裝程序仍然無法安裝。 我認為這是因為必須在WinZip安裝過程中進行選擇。 所以我的問題是我該如何設置它在后台靜默安裝WinZip? 我需要一個答案文件嗎? 如果是這樣,我該如何進行設置? 任何幫助將是巨大的!
*我在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特定的,並且與我如何根據需要建立答案文件有關。
由於我還沒有足夠的聲譽而無法對Anders響應發表評論,因此這是我個人用來靜默安裝msi安裝程序的命令,該命令是從我多次安裝多個程序時使用的安裝程序復制而來的。
ExecWait '"msiexec" /i "$TEMP\MSI Installer.msi" /qn'
這是假設您聽取了Anders的建議並嘗試使用WinZip的msi版本。
另外,安德斯(Anders)提到了代碼中的錯誤之一,其中您沒有使用要運行的安裝程序的完整路徑。 我還想指出,將路徑用單引號引起來總是一個好主意。 例如,當您這樣做時:
Delete $TEMP\WinZip165.exe
像這樣添加單引號:
Delete '$TEMP\WinZip165.exe'
當您做自己的
SetOutPath '$TEMP'
和
SetOutPath '$INSTDIR'
雖然您可以不用單引號就能解決大多數情況,但是如果遇到帶空格的路徑,則嘗試將路徑傳遞給宏或其他內容時會感到頭痛,因為它限制了空格和將字符串分成多段。 每當您要處理可能帶有空格或沒有空格的Windows路徑時,這都是一個好習慣。
順便說一句,BTW不接受這個答案,我打算將其作為對安德斯所說的后續措施。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.