Allt du behöver göra är att skapa en datakatalog:
initdb -D %PROGRAMDATA%\MyApp\data
installera sedan din PostgreSQL-konfigurationsfil och pg_hba.conf eller gör nödvändiga ändringar i filerna som genereras automatiskt av initdb på %PROGRAMDATA%\MyApp\data\postgresql.conf och %PROGRAMDATA%\MyApp\data\pg_hba.conf .
Sedan:
pg_ctl register -D %PROGRAMDATA%\MyApp\data -S auto -N postgres-MyApp -U NETWORKSERVICE
net start postgres-MyApp
Snälla använd inte standardporten 5432. Kör på en icke-standardport som inte kommer i konflikt med någon befintlig eller framtida PostgreSQL-installation. Använd inte heller "standard" tjänstnamn som postgresql-9.2 .
(NSIS kan erbjuda ett kommando för att starta en tjänst, istället för att använda net start . Om det gör det, använd lämpligt NSIS-kommando).
Observera att %PROGRAMDATA% är endast definierad för Windows Vista och högre (där den pekar på %SYSTEMDRIVE%\ProgramData som standard). Du kan använda %ALLUSERSPROFILE% på Windows XP, men vem bryr sig egentligen om XP nu?
Personligen föreslår jag att du använder MSI-installationsprogram med WiX.