Как настроить файл ответов /.ini для установщика Winzip с помощью NSIS

Я создаю установщик, который устанавливает несколько программ и файловых пакетов одновременно, одним из которых является WinZip. Я хочу, чтобы установщик WinZip работал в фоновом режиме, исходя из того, что я собрал, используя /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 и касается того, как я могу создать файл ответов, если это будет необходимо.

2 ответа

Решение

ExecWait "/s WinZip165.exe" явно неправильно, так и должно быть ExecWait '"$TEMP\WinZip165.exe" /S' но я не думаю, что WinZip использует установщик на основе NSIS...

Они предлагают.MSI, вы можете посмотреть на это. Их база знаний содержит несколько полезных советов, подобных этому и этому. Вы также можете найти некоторые другие советы, прибегая к помощи...

Если у вас есть другие вопросы об их режиме автоматической установки, вам, вероятно, следует обратиться в службу поддержки WinZip.

Поскольку я не могу комментировать ответ Андерса, потому что у меня пока недостаточно репутации, вот команда, которую я лично использую для автоматической установки установщиков MSI, скопированных прямо из установщика, который я использовал несколько раз, когда хочу установить несколько программ.,

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

Это предполагает, что вы принимаете совет Андерса и пытаетесь использовать MSI-версию WinZip.

Также Андерс упоминает одну из ошибок в вашем коде, когда вы не используете полный путь к установщику, который вы пытаетесь запустить. Я также хотел отметить, что это всегда хорошая идея, чтобы заключить ваши пути в одинарные кавычки. Например, когда вы делаете:

Delete $TEMP\WinZip165.exe

Добавьте одинарные кавычки так:

Delete '$TEMP\WinZip165.exe'

Это также относится, когда вы делаете

SetOutPath '$TEMP'

а также

SetOutPath '$INSTDIR'

Хотя вы можете избежать большинства случаев без одинарных кавычек, если вы когда-нибудь встретите путь, в котором есть пробелы, это вызовет головную боль, если вы попытаетесь передать путь к макросу или чему-то еще, потому что он разделяет пробелы и разбивает строку на несколько частей. Это просто хорошая привычка, когда вы имеете дело с путями Windows, которые могут иметь или не иметь пробелы.

Кстати, я не принимаю этот ответ, я хотел, чтобы он был продолжением того, что уже сказал Андерс.

Другие вопросы по тегам