【发布时间】:2010-10-02 07:33:18
【问题描述】:
我需要选择一个软件包来安装软件。 NSIS 和 WiX 似乎很有希望。你会推荐哪一个而不是另一个,为什么?
如果您认为它比这两个更好,请随时提供其他东西。
【问题讨论】:
标签: installation wix windows-installer nsis
我需要选择一个软件包来安装软件。 NSIS 和 WiX 似乎很有希望。你会推荐哪一个而不是另一个,为什么?
如果您认为它比这两个更好,请随时提供其他东西。
【问题讨论】:
标签: installation wix windows-installer nsis
NSIS 会给你一个 exe,WiX 会给你一个 MSI。
我使用 NSIS 将几个 MSI 安装程序打包到一个 exe 中,并进行了一些额外的检查,我无法弄清楚如何使用 VS.NET 安装项目。
INNO Setup 是您可能想要查看的另一个安装程序。它比 WiX 更接近 NSIS,但它使安装程序看起来更像标准安装程序而不是 NSIS 安装程序。
我没有使用 WiX,因为我不喜欢用于构建安装程序的 XML 定义语言,而且我不知道它是否支持打包其他依赖的 MSI
在这三个中我最喜欢 NSIS,因为它有最好的文档。
【讨论】:
如果您希望今天完成安装程序,并且开销最少,请使用 NSIS。简单的脚本语言,良好的文档,快速。
如果您想构建 MSI 文件,与 Windows Installer 事务系统集成,并有大量时间致力于学习 Windows Installer 使用的声明式模型,那么请查看 WiX。
【讨论】:
我个人只尝试过 WiX。它有一个稍微陡峭的学习曲线(除非你设法为它找到一个漂亮的图形用户界面),但最终应该得到回报,因为它使用 Windows 安装程序格式(MSI)而不是像(我相信)NSIS 那样的自定义 EXE . WiX/MSI 的声明式方法现在普遍受到青睐,被认为更可靠。但是,如果您只是想要一个快速简单的解决方案,NSIS 可能是一个选择,因为它应该有很多示例和良好的支持基础(尽管我个人只会使用 Visual Studio 安装包来完成类似的事情)。 This blog post 似乎讨论得很好。
【讨论】:
我在工作中使用 NSIS(我把它带进来并转换了我们旧的 InstalShield 东西),我确实喜欢它。
我不能说其他选项,但 NSIS 对于更复杂的安装程序流程可能会很棘手,而脚本语言对于更详细的事情来说有点原始(更像是汇编程序而不是高级语言)。
【讨论】:
另外,也许给Inno Setup 一个机会。当然,你可能会觉得它有点奇怪,因为它迫使你用 Pascal 编写自定义代码,但话又说回来,几乎没有任何东西可以强迫你实际编写自定义代码 - Inno Setup 真的非常强大。
Inno Setup 还生成 EXE 安装程序 - 如果您希望您的应用程序可以在企业环境中轻松部署,您可能不得不走 WiX 路线,但就个人而言,我遇到了相当多的 MSI 相关问题作为一个用户,我个人更喜欢 MSI 缓慢而可怕地死去(嗯 - 实际上,此时快速死去是有利的 - 但它很可能是可怕的),所以继续做 EXE 文件的事情。
所以。
作为一名长期的Delphi 编码员,我总是会选择 Inno Setup,尽管这可能非常有偏见(我从 1996 年左右开始就是 Inno Setup 的粉丝)。
【讨论】:
这几乎是 *What is the best choice for building Windows installers 的副本,所以我建议您查看那里的很多很多答案(那里也有一些关于商业替代品的讨论)。
您需要问自己的问题是:SMS/Active Directory 部署是否需要与企业部署场景兼容?如果答案是肯定的,那么learn the MSI fundementals。
如果您想发布一个真正只是为了好玩或不需要在企业环境中获得支持的应用程序,并且您不想花大量时间来加快速度,那么请学习 NSIS。
【讨论】:
你应该看看InstallJammer。它不仅是免费的,而且是跨平台的并且非常易于使用。大多数常见操作根本不需要任何脚本,但借助强大的底层脚本语言,您可以让安装做任何您想做的事情。
如果您只需要一个基本的安装程序来安装您的应用程序,那么您可以在第一次启动后的几分钟内构建它。如果您想要更强大的功能,功能和文档都非常出色。
【讨论】:
我使用过 NSIS。我不能真正评论其他人,但是我认为有很多 cmets 有助于做出客观的决定(如果你还没有的话)。 HMNSIS 软件非常适合为简单的应用程序创建简单的安装程序。它有一个内置向导,是 NSIS 的好小 IDE。
我也同意它是一个文档齐全的免费软件。但是,就像我说的那样,由于我不需要其他任何东西(因为我喜欢 NSIS),所以我无法比较。
【讨论】: