问题描述
我一直在评估Windows应用程序可用的各种安装和Web部署解决方案。我只是在这里澄清(没有太多细节,这些工具已在其他问题中涉及)我对选项的理解:
I have been evaluating the wide range of installation and web deployment solutions available for Windows applications. I will just clarify here (without too much detail, these tools have been covered in other questions) my understanding of the options:
- -生成安装可执行文件的免费工具。小二进制。专门的脚本语言,有时是晦涩的脚本语言。
- -生成MSI二进制文件的免费工具集。 XML定义语言。
- -其他工具用于打包,Web下载和自动更新检测(现在是WIX核心的一部分)。
- -用于安装包装的商业开发环境。生成MSI二进制文件。类似于C的InstallScript语言。
- -用于安装包装的商业开发环境。生成MSI二进制文件。
- -Visual Studio支持的框架,用于将应用程序发布到Web服务器,并自动检测更新。不支持自定义安装要求(INI文件,注册表等)。将软件包设置为MSI二进制文件。
- -用于的商业开发环境安装。生成MSI二进制文件。自动更新框架(Web更新)。
- NSIS - Free tool that generates setup executables. Small binary. Specialized, sometimes obtuse, scripting language.
- Inno Setup - Free tools for setup executables. Various binary compression schemes. Pascal scripting engine.
- WIX - Free toolset to generate MSI binaries. XML definitions language.
- WIX ClickThrough - Additional tools for packaging, web download and auto update detection (now part of WIX core).
- InstallShield - Commercial development environment for installation packaging. Generates MSI binaries. C-like InstallScript language.
- Wise - Commercial development environment for installation packaging. Generates MSI binaries.
- ClickOnce - Visual Studio supported framework for publishing applications to a webserver, with automatic detection of updates. No support for custom installation requirements (INI files, registry etc ...). Packages setup as an MSI binary.
- Install Aware - Commercial development environment for installation. Generates MSI binaries. Automatic Update framework (Web Update).
如果我错过了任何内容,请告诉我。
If I have missed any, please let me know.
,并在StackOverflow上找到了关于这些技术的一些有用的讨论:
And found some useful discussions of these technologies on StackOverflow:
- Best Simple Install System
- Best choice for Windows installers
- Alternatives to ClickOnce
我已经使用了其中一些解决方案以及一些专有的内部安装解决方案。他们主要关心打包安装,并为开发人员提供访问运行时环境的框架。随着对Web部署和自动软件更新的需求不断增长,我期望在开发人员之间就Web交付软件和后续更新的框架达成更多共识,但我尚未真正达成共识。当然有可用的解决方案(ClickOnce,ClickThrough,InstallShield更新服务),但是它们每个都有很大的限制(如果我误解其中的任何一个,请纠正我)。我对提供以下某些功能的框架感兴趣:
I have worked with a few of these solutions, as well as a handful of proprietary internal installation solutions. They are mostly concerned with packing installations and providing a framework for developers to access the run time environment. With the growing requirement for web deployment and automatic software updates, I expected to find more of a consensus among developers on a framework for web delivery of software and subsequent updates, I haven't really found that consensus. There are certainly solutions available (ClickOnce, ClickThrough, InstallShield Update Service), but they each have considerable limitations (please correct me if I mis-represent any of these). I would be interested in a framework that provided some of the following:
- 第三方托管/管理更新。
- 访问客户端环境(INI文件,注册表等)。
- 用户注册/激活。
- 反馈/错误报告
- Third party hosting/management of updates.
- Access to client environment (INI files, registry, etc..).
- User registration/activation.
- Feedback/Error reporting
这给我留下了深刻的印象,即解决Web部署问题的最佳方法是通过定制的专有解决方案(可能利用现有的安装程序包装)。我已经看到这种解决方案对于许多成功的应用程序非常有效:
This is leaving me with the strong impression that the best way to approach the web deployment problem is through a custom built proprietary solution (possibly leveraging existing installer packaging). I have seen this sort of solution work well for a number of successful applications:
- FileZilla-对update.filezilla-project.org的HTTP请求要检查更新,请下载NSIS二进制文件(我认为),然后关闭以运行安装。
- 对于大型多人游戏,自动更新是完全必要的,并且使用专有系统普遍实现。
所以,最后,我的问题是:
So, at last, to my questions:
- 我错过了一个能够提供所需功能的Web部署框架吗?
- 我的要求是否太具体,以至于不能合理地期望第三方框架能够交付?
- 我应该购买还是建造?
推荐答案
- 如果您的特定要求是企业的核心;也就是说,您的业务的一部分是提供平滑且用户友好的部署/安装,并且您会觉得没有可用的部署库可以让您实现这一目标,然后当然可以继续构建自己的部署库。
- 如果您的特定要求很不错,但对您的业务没有重大影响;也就是说,最终用户通常不会期望或不需要一个平稳的安装过程,或者永远不需要自己做(即,将这一步骤传递给IT部门),那么仅需要为自己的特定需求构建自己的
我认为您对需要定制解决方案的印象是声音一看来您的要求将成为产品体验的关键,尤其是在您需要真正流畅的自动更新和反馈的情况下。
I think that your impression that you will be needing a custom solution is a sound one; it seems like your requirements are going to be key to the experience of your product, especially if you need really smooth automatic updates and feedback.
这篇关于购买还是构建用于Web部署?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!