【问题标题】:Adding PostgreSQL installer to my own application installer将 PostgreSQL 安装程序添加到我自己的应用程序安装程序
【发布时间】:2013-08-05 12:45:09
【问题描述】:

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

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

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

【问题讨论】:

    标签: visual-studio-2010 postgresql installation


    【解决方案1】:

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

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

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

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

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

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

    如果你真的必须使用可执行安装程序the documentation contains instructions on silent installation

    【讨论】:

    • 我不会默默地这样做,并在我的安装程序和文档中非常具体地说明它。它是整个系统的重要组成部分。我一直在研究 .zip 捆绑,可能会在稍后阶段实施(我现在有一个截止日期......)。我一直在研究 Inno Setup,它比 VS setup 项目要容易得多。
    • @BartFriederichs 你会发现从一个变为另一个非常痛苦,但是,嗯,取决于你。见enterprisedb.com/resources-community/pginst-guide
    • 它不必在版本之间继续工作。我现在正在构建/打包的一个是用于内部 beta 测试。该版本将获得 ZIP 捆绑版本。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多