70

我需要选择一个软件包来安装软件。NSIS 和 WiX 似乎很有希望。你会推荐哪一个而不是另一个,为什么?

如果您认为它比这两个更好,请随时提供其他东西。

4

8 回答 8

84

如果您想在今天以最少的开销完成安装程序,请使用 NSIS。简单的脚本语言,良好的文档,速度快。

如果您想构建 MSI 文件,与 Windows Installer 事务系统集成,并有大量时间致力于学习 Windows Installer 使用的声明式模型,那么请查看 WiX。

于 2009-01-19T19:58:08.797 回答
41

另外,也许给Inno Setup一个机会。当然,您可能会觉得它有点奇怪,因为它迫使您在 Pascal 中编写自定义代码,但话又说回来,几乎没有任何东西可以迫使您实际编写自定义代码 - Inno Setup 真的非常强大。

Inno Setup 还生成EXE安装程序 - 如果您希望您的应用程序可以在企业环境中轻松部署,您可能不得不走 WiX 路线,但就个人而言,作为一个用户,我遇到了相当多与 MSI 相关的问题,我个人更喜欢 MSI 缓慢而可怕地死去(嗯 - 实际上,此时快速死去是有利的 - 但它很可能很可怕),所以继续做 EXE 文件的事情。

所以。

  • NSIS:要求您学习一门新语言。创建 EXE 安装程序。
  • WiX:声明式设置创建,虽然有点低级。它当然需要一些基本的 MSI 知识,我发现通过普遍缺乏简单的教程很难获得这些知识。
  • Inno Setup:允许您使用简单的、主要基于 .INI 文件的语法创建功能强大的 EXE 安装程序,但如果您需要自定义编码,它会迫使您学习 Pascal。

作为一名资深的Delphi编码员,我总是使用 Inno Setup,尽管这可能非常有偏见(我从 1996 年左右开始就是 Inno Setup 的粉丝)。

于 2009-01-19T20:07:21.757 回答
14

这几乎是 * What is the best selection for building Windows installers的副本,所以我建议您查看那里的很多很多答案(那里也有一些关于商业替代方案的讨论)。

您需要问自己的问题是:我是否需要与 SMS/ Active Directory部署的企业部署方案兼容?如果答案是肯定的,那么请学习 MSI 基础知识

如果您想发布一个真正只是为了好玩或不需要在企业环境中获得支持的应用程序,并且您不想花大量时间来加快速度,那么学习 NSIS。

于 2009-01-19T21:28:55.650 回答
10

NSIS 会给你一个 exe,WiX 会给你一个 MSI。

我使用 NSIS 将几个 MSI 安装程序打包到一个 exe 中,并进行了一些额外的检查,我无法弄清楚如何使用 VS.NET 安装项目。

INNO Setup 是您可能想要查看的另一个安装程序。它比 WiX 更接近 NSIS,但它使安装程序看起来更像标准安装程序而不是 NSIS 安装程序。

我没有使用 WiX,因为我不喜欢用于构建安装程序的 XML 定义语言,而且我不知道它是否支持打包其他依赖的 MSI

在这三个中,我最喜欢 NSIS,因为它有最好的文档。

于 2009-01-19T19:57:43.430 回答
6

我在工作中使用 NSIS(我把它带进来并转换了我们旧的 InstalShield 东西),我确实喜欢它。

我不能说其他选项,但是 NSIS 对于更复杂的安装程序流程可能会很棘手,而脚本语言对于更详细的事情来说有点原始(更像是汇编程序而不是高级语言)。

于 2009-01-19T20:04:36.333 回答
4

就我个人而言,我只尝试过 WiX。它有一个稍微陡峭的学习曲线(除非你设法为它找到一个漂亮的图形 UI),但最终应该得到回报,因为它使用 Windows Installer 格式(MSI)而不是像(我相信)NSIS 那样的自定义 EXE . WiX/MSI 的声明式方法现在普遍受到青睐,被认为更可靠。但是,如果您只是想要一个快速简单的解决方案,NSIS 可能是一个选择,因为它应该有许多示例和良好的支持基础(尽管我个人只会使用 Visual Studio 安装包来完成类似的事情)。这篇博文似乎很好地讨论了这个问题。

于 2009-01-19T20:03:29.423 回答
1

我用过 NSIS。我不能真正评论其他人,但是我认为有很多评论有助于做出客观的决定(如果你还没有的话)。HMNSIS 软件非常适合为简单的应用程序创建简单的安装程序。它有一个内置向导,是 NSIS 的好小 IDE。

我也同意它是一个文档齐全的免费软件。但是,就像我说的那样,由于我不需要其他任何东西(因为我喜欢 NSIS),我无法比较。

于 2011-08-08T17:56:34.363 回答
0

你应该看看InstallJammer。它不仅是免费的,而且是跨平台的并且非常易于使用。最常见的操作根本不需要任何脚本,但在底层使用强大的脚本语言,您可以让安装做任何您想做的事情。

如果您只需要一个基本的安装程序来安装您的应用程序,那么您可以在第一次启动后的几分钟内构建它。如果你想要更强大的东西,功能和文档都很棒。

于 2009-01-29T21:12:58.687 回答