我一直在评估可用于 Windows 应用程序的各种安装和 Web 部署解决方案。我将在这里澄清一下(没有太多细节,这些工具已在其他问题中介绍过)我对选项的理解:
- NSIS - 生成安装可执行文件的免费工具。小二进制。专门的,有时是迟钝的脚本语言。
- Inno Setup - 安装可执行文件的免费工具。各种二进制压缩方案。帕斯卡脚本引擎。
- WIX - 生成 MSI 二进制文件的免费工具集。XML 定义语言。
- WIX ClickThrough - 用于打包、Web 下载和自动更新检测的附加工具(现在是 WIX 核心的一部分)。
- InstallShield - 用于安装打包的商业开发环境。生成 MSI 二进制文件。类 C 的 InstallScript 语言。
- Wise - 用于安装打包的商业开发环境。生成 MSI 二进制文件。
- ClickOnce - Visual Studio 支持的框架,用于将应用程序发布到 Web 服务器,并自动检测更新。不支持自定义安装要求(INI 文件、注册表等...)。软件包设置为 MSI 二进制文件。
- Install Aware - 用于安装的商业开发环境。生成 MSI 二进制文件。自动更新框架(Web 更新)。
如果我遗漏了任何内容,请告诉我。
并在 StackOverflow 上找到了一些关于这些技术的有用讨论:
我使用过其中一些解决方案,以及少数专有的内部安装解决方案。他们主要关心打包安装并为开发人员提供访问运行时环境的框架。随着对 Web 部署和自动软件更新的需求不断增长,我希望在开发人员之间就软件和后续更新的 Web 交付框架达成更多共识,但我还没有真正找到共识。当然有可用的解决方案(ClickOnce、ClickThrough、InstallShield 更新服务),但它们都有相当大的限制(如果我错误地陈述了其中任何一个,请纠正我)。我会对提供以下一些功能的框架感兴趣:
- 第三方托管/更新管理。
- 访问客户端环境(INI 文件、注册表等)。
- 用户注册/激活。
- 反馈/错误报告
这给我留下了深刻的印象,即解决 Web 部署问题的最佳方法是通过定制构建的专有解决方案(可能利用现有的安装程序包)。我已经看到这种解决方案适用于许多成功的应用程序:
- FileZilla - 对 update.filezilla-project.org 的 HTTP 请求以检查更新,下载 NSIS 二进制文件(我认为),然后关闭以运行安装。
- 大型多人游戏的自动更新是完全必要的,并且使用专有系统普遍实施。
所以,最后,我的问题:
- 我是否错过了可以提供所需功能的 Web 部署框架?
- 我的要求是否过于具体而无法合理地期望第三方框架能够提供?
- 我应该购买还是建造?