【问题标题】:How many of you are using an internally developed installer for your company?你们中有多少人正在为贵公司使用内部开发的安装程序?
【发布时间】:2025-12-29 01:55:16
【问题描述】:

不久前,我们应该使用第三方安装程序还是自己编写安装程序存在争议。我们已经有 2 代内部开发的安装程序,它们只是通过外壳到 exe 来执行服务、msmq、com+、gac 和 sql 脚本。

所以我想知道谁在使用自定义编写的安装程序来满足您公司的特定需求?如果您对我们的方法有任何意见,请告诉我。

谢谢

【问题讨论】:

    标签: .net deployment installation


    【解决方案1】:

    我们在这里使用自定义的。我们需要做很多奇怪的事情,包括creating junctions、编辑其他用户的注册表项(这需要查找和加载他们的配置单元)、向我们的第三方实时 HAL 层注册东西等等。现在可能成为让您完成所有这些工作的安装程序工具包,但学习它们会比自己动手更复杂。

    我认为我们的都是 C++。

    【讨论】:

      【解决方案2】:

      我们有自己的安装程序包,这样做不属于我的“不该做什么...”列表的一部分

      虽然我同意许多安装程序的功能集非常有限,并且在某种程度上(严重)功能,但其他安装程序提供了更大的灵活性。话虽如此,我还没有开始寻找替代品,但这将是我明年要做的事情。我需要一些我能做到的东西:

      1. 创建我自己的模块、插件或任何支持的扩展模型,使用真正的编程语言(java、.NET...等等,如果安装工具支持的语言以公司名称开头这是一个主要的工具)
      2. 支持所有主要版本的 Windows。
      3. 支持 Linux
      4. 支持静默安装

      我不认为要求太多,而且我确信有人做了一些可以让我继续发展的事情。同样可以肯定的是,有一个开源打包系统可以做到这一点。

      我更喜欢维护一些专门的工具和插件,而不是用于多平台部署的完整系统。

      恕我直言,创建自己的任何东西应该是最后的选择。

      【讨论】:

        【解决方案3】:

        我以前的工作是这样的。

        我们选择这种方式的主要原因是我们需要根据用户的名字部署不同版本的软件。

        如果可以的话,这是一种 clickonce 部署器,但一次支持多个版本,而不是仅一个。

        【讨论】:

          【解决方案4】:

          曾几何时(大约在 2002 年),我亲手编写了一个小型安装程序(

          除此之外,大多数时候,每当我不得不为程序开发安装程序时,都是使用 InstallShield、WISE、InstallAware 或其他替代方案(如 WiX)完成的。

          现实情况是,维护和支持定制安装程序的成本可能相当高,尤其是随着每个新操作系统的发布,并且其中大部分成本可以通过购买或投资其中一种商业产品(或替代品)来抵消.

          话虽如此,许多安装程序可能相当迟钝。一种特定的产品需要使用 InstallShield Pro - 这样我们就可以在 InstallScript 中编写自定义操作的脚本!

          所以.. 如果您有一些需要相当复杂的安装工作的东西,那么很难推荐现成的安装程序包——尤其是在升级场景中,它可能更像是一场噩梦。如果您要支持自己的自定义安装程序,请帮自己一个忙,并为此投入大量时间、金钱和测试。

          哦,请确保您考虑到修补方案、升级、使用或不使用管理权限的安装、(如果适用)无人值守安装、UI 中的多语言支持……等等。它可能会变得非常混乱,很快。

          【讨论】:

            【解决方案5】:

            赛门铁克为 Norton AntiVirus 2009 编写了自己的安装程序。它根本不使用 Windows 安装程序 (msiexec.exe)。

            这就是他们将总安装时间缩短到不到 1 分钟的方法。

            【讨论】:

              【解决方案6】:

              我上次编写自定义安装程序是在 1992 年左右,在 Windows 3.0 下。那时我才这样做,因为我年轻而天真。我想不通这些天为什么有人会打扰。

              我将NSIS 用于我的个人项目,这既简单又快捷。公司政策迫使我将 InstallShield 用于我的专业产品,这也很好。

              几年前我有一个项目,安装程序需要修改本地 PC 上的一些网络设置,所以我写了一个简单的小 EXE 来做这件事,并让 InstallShield 运行它安装的一部分。这工作得很好,而且比编写一个完整的安装程序要容易得多。

              【讨论】:

                最近更新 更多