位于 C:\Program Files (X86)\ 中的 App 目录时带有“--”前缀的 PostgreSQL 安装错误

PostgreSQL installation error with "--" Prefix when located in App dir in C:\Program Files (X86)\

我尝试以无人值守模式在 myapp 中安装 PostgreSQL, 因此在 myapp 的默认目录下创建了两个用于安装 postgresql 的文件夹,如 (pgdata - pginstall),

***我尝试使用 postgresql_9.6_x86 and 10.5_x86 and 10.5_x64 and 10.6_x86_x64 and 10.6_86。 ***默认目录是:C:\Program Files (X86)\myapp

我设置无人值守模式命令如下: 我在 Pascal 代码中使用了参数以允许 PostgreSQL 运行 具有如下预定义选项:

PostgresParams := ExpandConstant('--serverport 5555 --servicename PostgreSQL --superpassword xxxxxxxxxx --unattendedmodeui minimal --debuglevel 2 --mode unattended --prefix {app}\pginstall --datadir {app}\pgdata);

当 运行 myapp.exe 时,在安装先决条件的过程中,PostgreSQL 在安装应用程序时出现如下错误:

There has been error. Expected option but got "Files". Option start with a leading "--" prefix Use --help to get a list of valid options

当我将安装目录更改为 C:\ 或 D:\ 或任何目录而不是 (C:\Program Files (x86)\myapp) 时,PostgreSQL 的无人值守安装开始并完美运行。

安装路径通常包含空格(Program Files),因此您始终需要将其用双引号引起来:

PostgresParams :=
  ExpandConstant('... --prefix "{app}\pginstall" ... --datadir "{app}\pgdata"');