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