Windows 安装程序的免费软件: NSIS 还是 WiX?

我需要选择一个软件包安装软件。NSIS 和 WiX 看起来很有希望。你会推荐哪一个? 为什么?

如果你觉得比这两个更好的话,可以提供其他的东西。

29612 次浏览

NSIS 会给你一个前任,WiX 会给你一个 MSI。

我使用 NSIS 把几个 MSI 安装包打包成一个单独的 exe,并做了一些额外的检查,我不知道如何使用 VS.NET 安装项目。

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

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

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

如果你想让一个安装程序做 今天,以最低的开销,使用 NSIS。简单的脚本语言,好的文档,快速。

如果你想构建 MSI 文件,集成到 Windows Installer 交易系统中,并且有足够的时间来学习 Windows Installer 使用的声明模型,那么去看看 WiX 吧。

我个人只试过 WiX。它有一个稍微陡峭的学习曲线(除非你设法为它找到一个不错的图形用户界面) ,但是最终应该是值得的,因为它使用的是 Windows Installer 格式(MSI) ,而不是像(我相信) NSIS 那样使用自定义 EXE。目前,WiX/MSI 的声明方法受到普遍青睐,并被认为更加可靠。然而,如果你只是想要一个快速和简单的解决方案,NSIS 可能是一个选择,因为它应该有很多样本和一个良好的支持基础(虽然个人来说,我只是使用一个 Visual Studio 安装包类似的东西)。这篇博文似乎对这件事讨论得很好。

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

我不知道还有没有其他的选择,但是对于更复杂的安装流程来说,nSIS 可能有些棘手,而且对于更详细的东西(更像是汇编语言而不是高级语言)来说,它的脚本语言有些粗糙。

还有,也许可以试试 创新设置。当然,你可能会觉得它有点奇怪,因为它强迫你用 Pascal 编写自定义代码,但是话又说回来,几乎没有任何东西强迫你真正做自定义代码-Inno Setup 真的非常非常强大。

Inno Setup 还生成 EXE安装程序——如果你想让你的应用程序在企业环境中易于部署,你可能不得不走 WiX 路线,尽管就我个人而言,作为一个用户,我有相当多的 MSI 相关问题,我个人更希望 MSI 死得缓慢而可怕(嗯——实际上,快速死亡在这一点上是有利的——但可能非常可怕) ,所以只是继续做 EXE 文件的事情。

那么。

  • NSIS : 需要您学习一门新语言。创建 EXE 安装程序。
  • WiX : 声明性设置创建,尽管级别有点低。它当然需要一些基本的 MSI 知识,我发现真的很难获得通过一般缺乏简单的教程。
  • Inno Setup : 允许你创建一个非常强大的 EXE 安装程序。INI-基于文件的语法,但是如果您需要自定义编码,它会强制您学习 Pascal。

作为一个长期的 Delphi编码器,我总是使用 Inno 安装程序,尽管这可能是非常有偏见的(我从1996年左右开始就是 Inno 安装程序的粉丝)。

这几乎是 * 构建 Windows 安装程序的最佳选择是什么的副本,所以我建议您查看那里的许多答案(那里也有一些关于商业替代品的讨论)。

您需要问自己的问题是: 我是否需要与 SMS/活动目录部署的公司部署场景兼容?如果答案是肯定的,那么 学习 MSI 的基本原理

如果你想发布一个只是为了好玩或者不需要在公司环境中支持的应用程序,而且你又不想花很多时间来跟上进度,那么学习 NSIS 吧。

你应该看看 InstallJammer。它不仅是免费的,而且是跨平台的,非常容易使用。大多数常见的操作根本不需要任何脚本,但是有了一个强大的脚本语言,你可以让安装程序做任何你想做的事情。

如果您想要的只是一个基本的安装程序来安装您的应用程序,那么您可以在第一次启动它的几分钟内构建它。如果您想要更强大的功能,那么功能和文档都非常优秀。

我用过国家安全情报局。我真的不能评论其他人,但我认为有相当多的意见,帮助作出一个客观的决定(如果你还没有)。HMNSIS 软件非常适合为一个简单的应用程序创建一个简单的安装程序。它有一个内置的向导,是一个很好的小 IDE 的 NSIS。

我也同意,它是一个相当完善的文档,自由软件。然而,正如我所说,由于我没有其他需要的事实(因为我喜欢 NSIS) ,我不能比较。