Automation 自动化、无人值守或静默安装软件

Automation 自动化、无人值守或静默安装软件,automation,installation,windows-installer,installshield,Automation,Installation,Windows Installer,Installshield,我有一个软件。它具有针对windows的GUI设置和针对linux的CLI install.sh。在执行时,它要求用户接受许可证,在接受时,它要求用户依次提供安装位置、密钥、服务器ip、端口和多个选项。我想让安装无人参与,这样用户双击一个文件,下一步就是安装软件。任何建议,请提前感谢。您需要的是静音模式。查看安装系统手册中的此关键字 许多安装系统都支持它-如果您还没有开始创建安装程序,我建议您使用NSIS(/SILENT参数)或Inno安装程序(/SILENT,/VERYSILENT)。 这些都

我有一个软件。它具有针对windows的GUI设置和针对linux的CLI install.sh。在执行时,它要求用户接受许可证,在接受时,它要求用户依次提供安装位置、密钥、服务器ip、端口和多个选项。我想让安装无人参与,这样用户双击一个文件,下一步就是安装软件。任何建议,请提前感谢。

您需要的是静音模式。查看安装系统手册中的此关键字

许多安装系统都支持它-如果您还没有开始创建安装程序,我建议您使用NSIS(/SILENT参数)或Inno安装程序(/SILENT,/VERYSILENT)。 这些都是免费的(开源)安装系统,功能非常强大


请注意此功能-许多用户在单击应用程序图标时会感到困惑,什么也不会发生(没有窗口打开)。

您需要的是静默模式。查看安装系统手册中的此关键字

许多安装系统都支持它-如果您还没有开始创建安装程序,我建议您使用NSIS(/SILENT参数)或Inno安装程序(/SILENT,/VERYSILENT)。 这些都是免费的(开源)安装系统,功能非常强大


请注意此功能-许多用户在单击应用程序图标时会感到困惑,什么也不会发生(没有窗口打开)。

答案取决于您使用的InstallShield项目类型。我强烈建议基本微星。InstallScript自定义操作可以,但不要使用InstallScript或InstallScript MSI项目类型

假设存在上述情况,您将创建安全的自定义公共属性,以便可以在命令行中传递这些属性。您还可以创建自定义对话框,以便在交互式安装过程中输入值。然后创建验证自定义操作,以防止两种情况下的坏数据。最后,使用注册表、INI、XML等系统更改中的属性,以便在应用程序需要时应用它们

您的静默安装如下所示:

msiexec/I foo.msi/qn INSTALLDIR=C:\foo KEY=12345 SERVERIP=10.0.0.1 端口=12345/l*v install.log


还要确保理解MSI不会自动持久化属性的概念。您需要一些AppSearch/System搜索来检索存储的值,以便在升级/修补/修复方案期间重用。

答案取决于您使用的InstallShield项目类型。我强烈建议基本微星。InstallScript自定义操作可以,但不要使用InstallScript或InstallScript MSI项目类型

假设存在上述情况,您将创建安全的自定义公共属性,以便可以在命令行中传递这些属性。您还可以创建自定义对话框,以便在交互式安装过程中输入值。然后创建验证自定义操作,以防止两种情况下的坏数据。最后,使用注册表、INI、XML等系统更改中的属性,以便在应用程序需要时应用它们

您的静默安装如下所示:

msiexec/I foo.msi/qn INSTALLDIR=C:\foo KEY=12345 SERVERIP=10.0.0.1 端口=12345/l*v install.log


还要确保理解MSI不会自动持久化属性的概念。您将需要一些AppSearch/System搜索来检索存储的值,以便在升级/修补/修复场景中重用。

好的,我使用expect工具(免费)完成了此操作。这里install.sh是我想要自动执行的文件,发送是我在安装过程中回答问题的选项。如果有任何问题,请告诉我

!/usr/local/bin/expect
生成“/install.sh”
设置超时2
预期{警告:强烈建议您以root用户身份安装RVS。是否以root用户身份运行安装程序[Y/n]}
发送“Y\r”
发送“xxxxxx\r”
希望{按enter键阅读许可协议:}
发送“输入\r”
期望{您是否接受许可协议[y/N]?}
发送“y\r”
预期{您想在哪里安装工具[/usr/local/pkg/RVS/v3.1a]?}
发送“输入\r”
期望{您想在哪里为工具[/usr/local/bin]创建链接?}
发送“输入\r”
预期{您想在哪里为库[usr/local/lib]创建链接}
发送“输入\r”
应为{您希望使用哪种许可证类型[N/f/a]?}
发送“f\r”
应为{IP地址:}
发送“1.1.1.1\r”
应为{端口:}
发送“33\r”
应为{SERVERKEY}
发送“XXXXXXXXXX\r”
预计{是否要安装对GNAT Pro的支持{6.0、6.1、6.4}(您需要GNAT Pro许可证才能使用此功能)[y/N]?}
发送“y\r”
期望{继续安装[Y/n]?}
发送“y\r”
生成“rvsinfo”

交互

好的,我是用expect工具(免费)完成的。这里install.sh是我想要自动执行的文件,发送是我在安装过程中回答问题的选项。如果有任何问题,请告诉我

!/usr/local/bin/expect
生成“/install.sh”
设置超时2
预期{警告:强烈建议您以root用户身份安装RVS。是否以root用户身份运行安装程序[Y/n]}
发送“Y\r”
发送“xxxxxx\r”
希望{按enter键阅读许可协议:}
发送“输入\r”
期望{您是否接受许可协议[y/N]?}
发送“y\r”
预期{您想在哪里安装工具[/usr/local/pkg/RVS/v3.1a]?}
发送“输入\r”
期望{您想在哪里为工具[/usr/local/bin]创建链接?}
发送“输入\r”
预期{您想在哪里为库[usr/local/lib]创建链接}
发送“输入\r”
应为{您希望使用哪种许可证类型[N/f/a]?}
发送“f\r”
应为{IP地址:}
发送“1.1.1.1\r”
应为{端口:}
发送“33\r”
前任