![InstallShield 静默安装](https://linux22.com/image/484643/InstallShield%20%E9%9D%99%E9%BB%98%E5%AE%89%E8%A3%85.png)
我正在尝试使用 InstallShield 整理一个用于静默(无用户交互)安装和卸载应用程序的软件包。我没有创建此应用程序,也无法访问任何类型的安装源。我使用 setup.exe /r 为安装和卸载创建了一个响应文件,分别名为 install.iss 和 uninstall.iss。当我在卸载程序的情况下运行 setup.exe /s /f1"%cd%\install.iss" 时,它运行得很好。问题是,当我在安装程序的情况下运行 setup.exe /s /f1"%cd%\uninstall.iss" 时,我收到错误代码!(编号 3)我没有正确创建此响应文件吗?为什么它应该适用于安装,而不能适用于卸载?程序是 Teradata Manager 12.0,任何意见都将不胜感激。
答案1
您可能正在处理使用“自定义”对话框和脚本构建的安装程序,这些对话框和脚本不支持静默模式安装或卸载。
您可以尝试使用以下命令运行安装程序:
setup.exe /s /f1"%cd%\uninstall.iss" /verbose"%cd%\logging.txt"
这将创建一个 MSI 引擎日志文件。这非常冗长,但可能有助于您解决此问题。但这不太可能......
不幸的是,我最近在拥有代码的设置中排除了同样的问题,并且“ErrorCode = -3”几乎没用,从未设置内部 MSI 变量到安装程序显示错误消息并且未得到正确处理...
答案2
由于您显然使用的是 exe 而不是 Windows 安装程序,因此您可以尝试使用 InnoSetup 而不是 InstallShield 来打包安装。我们很幸运地使用它来组装复杂的安装包,并且它具有 /silent 和 /verysilent 模式,可用于无人值守安装。它是免费的,所以尝试一下没有风险。
最大的缺点是它不能制作用于使用 GPO 部署的 msi 文件,但它非常适合 exe 安装。
答案3
看到这个页在 InstallShield 的文档中列出了其命令行选项 Setup.exe 和 Update.exe 命令行参数以供进一步选择。