2

我创建了一个 Visual Studio 2010 安装程序项目并将postgresql-9.2.401-windows.exe文件添加到其中。在“提交”自定义操作中,我添加了该文件,删除了所有参数并设置InstallerClassFalse.

现在,当我运行我的应用程序的安装程序时,PostgreSQL 安装程序启动,显示它的启动屏幕,然后跳转到 100% 的 CPU 使用率并开始长时间泄漏内存(肯定超过几分钟),之后它就会退出。在那台计算机上运行.exe就可以了。

我应该如何在我的安装程序中打包 PostgreSQL?

4

1 回答 1

5

就我个人而言,我不喜欢静默安装标准 PostgreSQL for Windows 的程序。从那些询问“这是什么 PostgreSQL 的东西,为什么它使用 88 兆字节的 RAM,我没有要求它,现在删除它!”的人那里收到邮件列表帖子非常烦人。

(是的,我主要是在谈论某个令人讨厌的赌博算牌程序,其首字母缩写为 PT,我不会直接提及它的名字)。

如果您要捆绑 PostgreSQL,最好使用非默认端口和非默认数据目录。如果您安装服务以自动启动它,请不要使用默认服务名称postgresql-[version],而是使用类似myapp-databaseor的名称myapp-postgres

如果您只是在安装程序中捆绑 PostgreSQL 二进制文件,然后使用您的安装程序工具或通过sc.exe. 您可以选择pg_ctl从程序中简单地启动/停止服务器,但这需要考虑对数据目录的访问权限。

缺点是当有 PostgreSQL 更新时,您需要更新安装程序。另一方面,您可能不希望人们独立于您的软件更新来升级 PostgreSQL。

我建议使用此处的 .zip 二进制文件并将它们直接捆绑到您的安装程序中。

如果您确实必须使用可执行安装程序,文档包含有关静默安装的说明

于 2013-08-05T14:53:24.243 回答