Pessoalmente, não gosto de programas que instalam silenciosamente o padrão PostgreSQL para Windows. É profundamente irritante receber mensagens de lista de discussão de pessoas que estão perguntando "O que é essa coisa do PostgreSQL e por que está usando 88 bilhões de megabytes de RAM, eu não pedi, remova-a agora!".
(Sim, estou falando principalmente de um certo programa irritante de contagem de cartas de jogo com as iniciais PT cujo nome não mencionarei diretamente).
Se você vai empacotar o PostgreSQL, seria ótimo se você pudesse usar uma porta não padrão e um diretório de dados não padrão. Se você instalar um serviço para iniciá-lo automaticamente, não use o nome de serviço padrão
postgresql-[version]
mas algo como myapp-database
ou myapp-postgres
. Isso tudo é feito muito mais facilmente se você apenas agrupar os binários do PostgreSQL em seu instalador e criar o serviço você mesmo com suas ferramentas de instalação ou via
sc.exe
. Você pode escolher simplesmente pg_ctl
inicie/pare o servidor de dentro do seu programa, embora isso exija alguma reflexão sobre as permissões de acesso ao diretório de dados. A desvantagem é que quando há atualizações do PostgreSQL você precisa atualizar seu instalador. Por outro lado, você provavelmente não quer pessoas atualizando o PostgreSQL independentemente de suas atualizações de software.
Sugiro usar os binários .zip aqui e agrupá-los diretamente no seu instalador.
Se você realmente precisar usar o instalador executável a documentação contém instruções sobre instalação silenciosa .