【问题标题】:Is there any definitive documentation on writing software installers?是否有任何关于编写软件安装程序的权威文档?
【发布时间】:2010-10-29 17:34:26
【问题描述】:

我已经阅读了大量关于安装程序的文档,但没有找到任何可以解释基本概念的好东西。我遇到的大多数安装程序软件都基于相同的“数据库”结构,我根本不了解。

各种产品附带的所有文档 - 即 WiX、InstallAware、Wise、InstallShield 等,都希望您了解这些基本概念 [我只是不明白],以便了解他们所说的内容。

谁能指出我解释软件安装程序概念的文档方向,以便软件文档真正有意义?

【问题讨论】:

标签: c# .net installation windows-installer installshield


【解决方案1】:

更新 - 自从我的原始帖子以来,WiX: A Developers Guide to Windows Installer XML 已经发布,对于初学者来说也是一个很好的资源。 (不过我自己并不觉得它那么好。)我仍然建议以阅读The Definitive Guide to Windows Installer 作为起点。 Windows Installer 和 WiX 不是几天就能掌握的东西,它需要几个月的时间。


去取一份The Definitive Guide to Windows Installer。我已经数不清有多少次我向那些陷入概念并且正在努力理解 Windows Installer 如何工作的人推荐它。确保你也抓住了Windows Installer SDK

掌握 Windows Installer 是您学习的第一个阶段,一旦深入了解,您将了解 InstallShield 的工作原理(或视情况而定..)。 Wise、InstallShield 等试图保护您免受底层概念的影响,并有自己的诡计/黑客来绕过 Windows Installer 的限制。

第二阶段(如果您认真了解 Windows Installer)正在学习 WiXWiX Tutorial 还不错,虽然它有点过时并且针对 WiX 2.0 而不是 3.0)并加入wix-users mailing list。在你读完上面提到的书之前不要加入用户列表,你会在你的头脑中得到很好的。那些不了解 Windows Installer 概念的人提出的问题在很大程度上会被忽略,但是那些做过家庭作业的人提出的问题会发现它是一个很好的资源。

本书未涵盖的内容是 Vista,Understanding UAC and Vista 上的 Robert Flamings 博客文章(在 Vista 处于测试阶段时编写)是您可以找到的关于该主题的最佳信息。

Windows Installer 和 WiX 团队真正擅长的一件事是使文档(帮助文件)保持最新。每当我进行设置时,我通常会在一台显示器上打开 Wix.chmMsi45.chm ;)

除了文档之外,来自 WiX 和 Windows Installer 团队的人们的博客也非常适合学习新技巧等。这里列出的太多了,但是一旦您了解了术语,您就会发现其中的大多数都出现了谷歌搜索结果。

如果这一切看起来太多,请查看NSIS。非常适合简单的“我只需要复制文件”类型的安装,而不适合企业部署。如果您在两者之间纠结,那么不妨看看 Rob Mensching 的旧博客 when setup isn't just xcopy。那里的文章可能让我相信,从长远来看,深入学习底层的 Windows Installer 概念会有所收获。它有:)

【讨论】:

  • 如果这太多了,我个人会推荐 InnoSetup 代替(也是免费的);它有一个类似的功能集,但语言不那么古怪。
  • 不幸的是,如果您正在编写商业软件,您将需要采用 Windows Installer 路线 - 大多数企业客户甚至不会考虑购买,除非您可以为他们提供 MSI 进行部署。
【解决方案2】:

(MSDN, About Windows Installer) 是了解有关在 Windows 上安装的“常规”信息的最佳起点。所有“基于 msi”的安装程序都与这些概念相关。

唯一的“其他”安装程序类型(在 Windows 世界中)是 NSIS,它实际上不适合企业安装(我不想在这里开始关于程序安装程序与非程序安装程序的辩论)。

安装东西真的很复杂,包含广告、还原点、补丁和转换等高级概念,但是当你“得到它”时,你可以做一些非常酷的事情,比如work-around 使用 SQL 获得 TFS 2008 2008.

TFS 2008 不支持 SQL 2008,但 TFS 2008 SP1 支持,所以您要做的就是使用如下命令为 TFS 2008 RTM 安装“修补”TFS 2008 SP1:

msiexec /a C:\TFS\RTM\AT\vs_setup.msi /p C:\TFS\SP1Extract\TFS90sp1-KB949786.msp TARGETDIR=C:\TFS\ATIntegrated

但结果是您无法将其作为“TFS 2008 with SP1”分发。

【讨论】:

  • 是否有任何值得注意的非 MSI 安装程序? MSI 安装程序的整个概念对我来说没有意义。是否还有其他适用于 Windows 的值得注意/可行的安装程序概念?
  • 无论您是否喜欢 MSI,这都是 Microsoft 使用的、Visual Studio 构建的以及“添加/删除”控制面板列出的内容。您可以制作一个基于 EXE 的安装程序,但是您放弃了 MSI 提供的很多东西,并且需要做更多的工作。
  • 唯一“值得注意的”非 MSI 是 NSIS。通常由已放弃尝试回答您所问问题的程序员使用;)
  • 是的,NSIS 非常适合简单的安装,但从长远来看它确实缺乏。与 VS2005 和 2008 的“构建项目”方法相同。 WiX 是我找到的最好的方法(而且是免费的),但 InstallShield/Wise 是最简单/最快的。
  • 您还可以使用 setup.exe 引导程序制作带有 MSI 的 EXE 安装程序。当然它需要两个文件,但这是值得的。您还可以将 MSI 打包到引导程序 EXE 中。
【解决方案3】:

你可以试试

Windows Installer resources(以下链接的起始页)

Windows Installer(查看“Windows Installer 概述”)

Windows installer on MSDN(SDK 信息)

希望对您有所帮助...

【讨论】:

    【解决方案4】:

    我见过的关于 Windows Installers 的最佳介绍是 Phil Wilson 的书 Definitive Guide to Windows Installer。这是 2004 年编写的,没有 Vista 或 Win7 特定的功能。

    我见过的最好的 Windows 安装程序站点是 www.installsite.org。它有一些介绍性文章,但面向专家。

    【讨论】:

      【解决方案5】:
      【解决方案6】:

      如果您的安装需求不是很复杂,我建议您尝试一下 InnoSetup。几年前,我在一套 Windows 应用程序安装程序上使用它,没有任何抱怨。比 InstallShield 和 MSI 简单得多,但您的里程可能会有所不同。

      我与 InnoSetup 没有任何关系。

      【讨论】:

      • 我遇到的大多数问题都不是基本安装,其中大部分都相当容易用于基本的东西。当您需要在基本之外做任何事情时 - 即添加自定义表单和功能,它变得完全无法理解。
      【解决方案7】:

      查看代码是了解安装程序如何工作的好地方。

      【讨论】:

      • 我倾向于建议不要查看 NSIS 源代码来学习安装(在 Windows 上),它实际上与使用的所有其他方法无关。至于 Inno,从来没有考虑过那个。
      猜你喜欢
      • 1970-01-01
      • 2023-03-24
      • 2013-06-18
      • 1970-01-01
      • 2015-04-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-02
      相关资源
      最近更新 更多