安装程序:WIX或Inno安装程序?

我正在比较这两个工具。 我的印象是:

  • Inno Setup不会生成MSI,但可以执行WIX可以执行的所有操作
  • WIX的确产生了一个MSI,但是学习曲线陡峭
  • 你是否同意这种表征? 还有什么其他差异? WIX#如何改变这个故事? 由于Inno Setup不使用Windows安装程序,它有卸载的困难吗? Can Inno Setup可以根据命令将安装降级到较早的版本 - 或者只能安装/升级应用程序?


    我与MSI合作已经很长时间了,当我转向InnoSetup时,我从未回头。

    我不希望我的安装令人头疼。 我需要一些可以“设定并忘记”的地方

    InnoSetup默认生成一个卸载。 它可以处理简单或复杂的安装和卸载需求。

    使用InnoSetup您可以通过几种不同的方式升级应用程序。

  • 最初我们确实使用了覆盖现有安装的覆盖方法。
  • 最近我们在安装新版本时切换了以前版本的自动卸载。
  • 随着InnoSetup降级通常会卸载并重新安装旧版本。


    你对MSI而不是MSI部分是正确的,你说得对,MSI的学习曲线更陡。 但两者都有别人不具备的特点。 让我引用Glytzhkof关于MSI的优势。

    Glytzhkof说:嗨;-) 。 请在serverfault.com上阅读我的原始答案,以获取由于其陡峭的学习曲线导致的MSI常见问题的摘要。 这个答案关注于理论上的好处, 另一个答案 (在同一个线索中)总结了我头顶的常见MSI问题。 最值得欢迎的是我添加了最常见的问题。

  • 透明度 (开放式安装程序格式) - 可以查看和检查MSI。 这对于大公司来说是一个巨大的问题。 除编译的自定义操作外,MSI文件是一个“白盒”。 如果安装程序改变了一些疯狂的东西,例如系统范围的网络设置,您可以真正看到它。
  • 可定制性 - 可以通过转换来定制MSI以适应组织的需求和标准,同时仍允许与供应商的安装程序更新进行互操作。 您不会更改安装程序本身,您可以在称为转换的单独组织特定文件中创建自定义。 您可以自由地禁用自定义操作以及一般安装程序中的任何操作,并且可以通过联系供应商进行解释来批准“黑匣子”自定义操作。 这些转换文件有时也用于将MSI文件本地化为不同的语言。 多个转换可以应用于单个MSI。
  • 标准化 - MSI不适合“允许任何事情”。 它为安装程序提供了一个全面的框架,其中最关键的还包括卸载 - 全部采用标准格式。 安装程序GUI还具有内置功能的标准化,以支持可以远程触发的静默安装和卸载。
  • 管理和报告 - Windows Installer维护产品已安装的所有项目的综合数据库。 您可以可靠地确定是否安装了产品,安装了哪些功能以及安装了哪些文件版本。 此外,您可以获取已应用于基本产品的所有修补程序的列表(如果有)。
  • 安全性 - 从全面安装数据库可以检测已安装产品的安全漏洞。 MSI还包含“提升权利”原则,允许受限用户触发安装需要管理员权限的产品。 这是“广告功能”的一部分,它允许管理员使用户可以使用安装程序,而无需在所有工作站上实际安装它们。 没有必要混淆临时权利让事情正常工作。
  • 验证 - 可以使用验证规则来检查MSI文件,以确保它符合许多内部一致性规则(称为ICE)。 公司可以创建自己的ICE检查来执行特殊的公司规则和要求。 这对QA有很大的帮助。
  • 弹性 - Windows安装程序的管理员安装功能提供了从MSI中提取源文件的标准方式。 这些源文件然后可以放在一个共享中,并可供所有工作站安装。 这可确保修复,卸载和修改操作,而无需使用CD或类似软件请求安装介质。 这对于在特殊情况下可能需要访问旧版本源文件的修补和更新操作尤为重要。
  • 回滚 - 安装MSI文件通常会触发创建还原点。 此外,在安装过程中替换或覆盖的所有文件和注册表项将在保存并恢复,如果安装无法完成。 这确保即使安装失败,工作站仍处于稳定状态。 正如你可能预期的设计不佳的MSI文件可能违反Windows的内置功能,请参阅我的其他帖子以获取更多详细信息。
  • 修补和更新 - 尽管Windows安装程序中的高度复杂修补程序在系统中进行了完全管理和注册,因此可以通过检查已安装的内容来确定系统安全状态。 更新被标准化为几个基本变体,并且这允许以更高的确定性执行更新。 部署系统将能够报告哪些更新失败以及为什么。
  • 日志记录 - Windows安装程序提供了一个标准化的日志记录功能,它比以前的版本更加优越,尽管几乎过于冗长。 日志文件可以使用日志分析器进行解密,并且可以使用自定义日志级别来消除包含不必要信息的过大日志文件。 为了调试目的,详细记录非常有用。 请参阅Rob Mensching的博客 ,了解阅读MSI日志文件的好方法。

  • 我迟到了回应这个线程。 多年来,我一直在为我公司的产品使用Inno Setup。 它大部分事情都做得很好,但对我来说最大的障碍是自定义操作。 在Inno Setup中,必须使用Pascal语言的变体。 使用WiX工具集,我可以并且确实将C#用于我的自定义操作,这对我来说更加舒适。 无可否认,这是个人偏好,但这是我从一个非常优秀的Inno Setup平台转换到一个优秀的WiX平台的主要原因。 这一点,以及使用已经在另一个回复中提到的MSIs有很多好处。

    坦率地说,对我而言,Pascal的学习曲线比使用本书WiX 3.6:Windows Installer XML开发人员指南的WiX的学习曲线要​​高。

    链接地址: http://www.djcxy.com/p/20355.html

    上一篇: Installers: WIX or Inno Setup?

    下一篇: .NET 4 Windows service install upgrade error