我使用Windows Installer的CreateService来创建PostgreSQL服务。 WiX Source如下:
<ServiceInstall
Id="InstallService_0001"
Name="my_pg_svc"
DisplayName="My Postgres Service"
Description="Database Server "
Start="auto"
ErrorControl="normal"
Arguments="runservice -N "my_pg_svc" -D "[DATA_FOLDER_PATH]" -w"
Type="ownProcess"
Account="NT Authority\NetworkService"
/>
pg_ctl.exe
需要带斜杠的路径(例如:D:/my_proj/my_db
),但是Windows Installer将[DATA_FOLDER_PATH]替换为带有反斜杠的路径(例如:D:\my_proj\my_db
)。
问题是如何让WI以我需要的格式传递路径,或者,我如何以所述格式使pg_ctl.exe
接受路径?
P.S。添加PGDATA
环境变量并省略path参数不是一个选项,因为最终用户可能已经在使用该envvar。