Windows installer 如何通过Inno设置将值传递给msi

Windows installer 如何通过Inno设置将值传递给msi,windows-installer,inno-setup,bootstrapper,Windows Installer,Inno Setup,Bootstrapper,我正在使用Innosetup作为msi设置的引导程序。它包含主mis文件和其他先决条件。当我们使用完整的UI时,它工作得很好。现在我想在静默模式下安装整个安装程序。对于InnoSetup,我们可以提供/SILENT或/VERYSILENT。如何将值传递给msi(即,解锁密钥、要安装的功能等)。如果我单独安装msi,我可以在命令行中给出它。但是当作为单个exe使用时,我如何给出它?我应该为此编写任何inf或bat文件吗?相同的exe将用于在静默模式下以及在完整UI中安装 等待答复 感谢和问候, 瓦

我正在使用Innosetup作为msi设置的引导程序。它包含主mis文件和其他先决条件。当我们使用完整的UI时,它工作得很好。现在我想在静默模式下安装整个安装程序。对于InnoSetup,我们可以提供/SILENT或/VERYSILENT。如何将值传递给msi(即,解锁密钥、要安装的功能等)。如果我单独安装msi,我可以在命令行中给出它。但是当作为单个exe使用时,我如何给出它?我应该为此编写任何inf或bat文件吗?相同的exe将用于在静默模式下以及在完整UI中安装

等待答复

感谢和问候, 瓦伦

您可以使用:

function ParamStr(Index: Integer): String;
说明: 返回传递给安装程序或卸载程序的Index th命令行参数


在脚本中,您可以使用ParamStr[i]中的值运行msi。

这是我针对mariadb安装程序的解决方案。在运行部分,输入:

Filename: "msiexec.exe"; Parameters: "/i {app}\mariadb-5.2.9-win32.msi PORT=3306 PASSWORD=xxxxxx SERVICENAME=MySQL ADDLOCAL=ALL REMOVE=DEVEL,HeidiSQL INSTALLDIR=""C:\mariadb"" /L*v log.txt /qb"; WorkingDir: {app}; Flags: waituntilterminated skipifdoesntexist
我的问题是在/i之后出现了双引号,一旦删除了双引号,安装就会完美地、安静地执行(/qb),并为mariadb安装创建一个log.txt文件