【问题标题】:How to set up answer file/.ini for WinZip installer using NSIS如何使用 NSIS 为 WinZip 安装程序设置应答文件/.ini
【发布时间】:2012-08-07 17:21:19
【问题描述】:

我正在创建一个安装程序,它可以同时安装多个程序和文件包,其中之一是 WinZip,我希望 WinZip 安装程序在后台运行,根据我使用 /s 收集的信息,它将使其运行静音模式,但安装程序仍然没有安装。我相信这是因为在 WinZip 安装过程中必须做出的选择。所以我的问题是如何设置它以在后台静默安装 WinZip?我需要一个答案文件吗?如果是这样,我该如何设置?任何帮助都会很棒!

*sn-p 我在 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,并且与如果需要我将如何建立应答文件有关。

【问题讨论】:

    标签: installation nsis ini winzip


    【解决方案1】:

    ExecWait "/s WinZip165.exe" 显然是错误的,应该是 ExecWait '"$TEMP\WinZip165.exe" /S' 但我不认为 WinZip 使用基于 NSIS 的安装程序...

    他们确实提供了 .MSI,您可能想看看。他们的知识库包含一些有用的技巧,例如 thisthis。您也可以通过谷歌搜索find 一些其他提示...

    如果您对他们的静默安装模式有任何其他问题,您应该联系WinZip support

    【讨论】:

      【解决方案2】:

      由于我还没有足够的声誉,因此我无法对 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 路径时,养成这只是一个好习惯。

      顺便说一句,我不接受这个答案,我只是想把它作为安德斯已经说过的话的后续行动。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-09-25
        • 2012-05-21
        • 2021-07-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多