2

我正在尝试自动安装一些安装文件 (.exe)。我设法让一个工作没有任何问题,但第二个遇到困难。

我在命令提示符下使用以下命令创建了响应文件:

MyProgram.exe -r

正如我所期望的那样,这在 C:\Windows 中生成了一个“setup.exe”文件。以下是该文件在记事本中的外观示例:

[{PRODUCT_GUID}-DlgOrder]
Dlg0={PRODUCT_GUID}-SdWelcome-0
Count=5
Dlg1={PRODUCT_GUID}-SdLicense-0
Dlg2={PRODUCT_GUID}-SdAskDestPath-0
Dlg3={PRODUCT_GUID}-SdSelectFolder-0
Dlg4={PRODUCT_GUID}-SdStartCopy-0

[{PRODUCT_GUID}-SdWelcome-0]
Result=1
[{PRODUCT_GUID}-SdLicense-0]
Result=1
[{PRODUCT_GUID}-SdAskDestPath-0]
szDir=C:\Example\
Result=1
[{PRODUCT_GUID}-SdSelectFolder-0]
szFolder=Example\Folder
Result=1
[{PRODUCT_GUID}-SdStartCopy-0]
Result=1

我使用以下命令使用 setup.iss(响应文件)运行安装:

program.exe /S /f1.\setup.iss

除了一个之外,所有响应文件似乎都可以工作。该程序会打开一个对话框,要求我从一对单选按钮中进行选择,以选择我希望它安装的语言手册。我希望它默认点击“下一步”按钮,但 .iss 文件中显然没有任何记录可以这样做。

为了完成这个提示,我必须手动添加什么到 .iss 文件?为什么我的录音没有放这个?

附加信息:

  • 如果我在这一步手动点击“下一步”,程序将按预期完成安装。

  • 当我手动安装所有内容时,程序成功安装。

4

2 回答 2

3

听起来此安装包含一个自定义对话框,该对话框无法正确处理或。为了让静默安装正常工作,它需要在适当的时候调用。MODE SILENTMODERECORDMODESilentWriteDataSilentReadData

如果您是此安装的作者(无论是原始的还是继承的),您应该处理这种情况。如果您不是作者并且正在尝试静默安装此安装,您应该联系供应商,或者(如 Glytzhkof 建议的那样)在更相关的站点上询问解决方法。

于 2014-05-30T13:48:19.373 回答
1

我认为响应文件将仅包含在原始响应文件创建会话期间输入的实际答案。在最初的安装运行期间是否出现了这个缺失的对话框?响应文件中经常缺少重新启动对话框和很少显示的对话框。

也可能是缺少的对话框是自定义对话框,而不是内置的 Installshield 对话框。我想这可能意味着它的行为不符合标准。

这个设置有多复杂?您要部署到多少个系统?为了可靠地部署此类文件,通常使用“设置捕获”并将其重新打包为 MSI 文件 - 所谓的应用程序重新打包。

根据您拥有的设置数量、它们的重要性以及它们需要多少台机器才能可靠地工作,可能值得捕获它们。这有时是一项非常复杂的任务,但一旦正确完成,就会产生更可靠的部署。就我个人而言,我发现重新打包的最大好处是可以进行可靠的卸载——前提是您已经正确清理了捕获。否则,您也必须为卸载创建响应文件。非常笨重且容易出错——即使做得好。

您可能希望将此讨论带到serverfault.com - 相当于 stackoverflow.com 的系统管理员。您也可以在这里查看:http: //unattended.sourceforge.net/installers.php

于 2014-05-30T13:05:52.700 回答