Delphi、安装程序和 Windows 7
Posted
技术标签:
【中文标题】Delphi、安装程序和 Windows 7【英文标题】:Delphi, installers and Windows 7 【发布时间】:2011-01-17 01:23:28 【问题描述】:作为向 Windows 7 全面迁移的一部分 - 所有应用程序都应具有“安装程序体验”,我需要为我们所有的应用程序套件创建安装程序。我看过InstallShield,但这似乎非常昂贵。我可以查看哪些安装产品?
安装程序需要在我们的构建机器上无人看管地构建,因此除了成为安装程序构建器之外,还有一定程度的复杂性。
更新:
我查看了所有建议,它们看起来都不错。我的计划包括通过SCCM(或类似的东西)向最终用户推送东西。我需要 MSI 支持吗?
【问题讨论】:
您始终可以在 inno 或 nsis 中使用 msiexec 来执行 msi 相关任务 【参考方案1】:我认为Inno Setup from Jordan Russell 可以为所欲为。哦,它是免费的。
【讨论】:
我非常喜欢 Inno,它确实有一个命令行界面,因此您可以将它包含在您的自动构建中。 我对 INNOSETUP 非常满意,发现任何基于 MSI 的技术都是垃圾,建议您远离这些,并使用像 Inno-Setup 这样的简单工具,它可以(尽管如此)可以轻松完成许多臃肿的 MSI 工具无法做到的事情。 Inno Setup 还允许您使用 delphi 之类的 pascal 脚本来包含任何额外的安装逻辑。 @Warren P:同意。 MSI...呃,从用户的角度来看。我讨厌在安全模式下无法卸载某些东西,因为它需要运行在安全模式下不起作用的服务。一次只能运行一个 [un] 安装程序。 “收集需要的信息”需要很长时间 - 即,做它应该做的事情。嘎。 就在昨天,我遇到了一个问题,即由于 DCOM 服务已关闭,Windows 更新失败。因为 MSI 需要 DCOM。嗯,嗯,嗯?因为我在安装时想到的是远程过程调用和分布式 COM。哈哈。我讨厌微星。【参考方案2】:您可能想看看 Nullsoft Scriptable Install System (NSIS)。
NSIS 安装程序脚本的编译可以集成到您的构建系统中。
(您甚至可以在 Linux、BSD 或 Mac OS X 上交叉编译您的 Windows 安装程序。)
通过http://nsis.sourceforge.net/了解更多信息。
使用 NSIS,您可以构建 .exe 安装程序(想想 setup.exe)。
如果您想构建 MSI 软件包,请查看 Windows Installer XML (WiX) 工具集。
更多信息在这里:http://wix.sourceforge.net/
【讨论】:
NSIS 现在拥有 Delphi 的本地专家 (http:www.rad-installer.com),因此您可以直接从 IDE 使用它。【参考方案3】:Installaware 是我的建议
http://installaware.com/
【讨论】:
我认为 Delphi 本身使用 Installaware。然而,与像 Inno 这样的“轻”重量系统相比,它是一个“重”重量系统。对于某些人来说,光线会是首选,而对于某些人来说,则相反。【参考方案4】:我使用 Delphi 构建的桌面应用程序,我们使用 Wise Installation Studio 来构建我们的安装程序。它似乎足够强大,可以满足您的需求,包括创建 MSI 包的能力。但是,它不是免费产品。
http://www.wise.com/Wise/Products/Installations/WiseInstallationStudio.aspx
【讨论】:
【参考方案5】:多年来,我一直使用 Just Great Software 的 DeployMaster,对此我感到非常满意。 它可以集成到您的构建过程中。 不是免费的,但价格非常合理。
【讨论】:
【参考方案6】:MSI 安装程序是企业安装的理想选择,创建 MSI 的好方法是使用基于 XML 的系统 WiX。但是,您需要的文件很复杂,因此我使用MSI Factory 创建安装程序来处理所有常见要求,然后输出可以由我的构建脚本工具FinalBuilder 构建和更新的WiX 文件。这样我就可以享受到漂亮的用户界面和打开文件工具的好处,所以没有锁定。
【讨论】:
为什么要推荐一些充满意外复杂性的东西(WIX/XML/MSI),除非你知道有人需要一些奇怪的小东西,比如无人值守的远程推送安装。 Warren - 这正是我所需要的 - 我们将推出无人值守远程推送安装的应用程序 - 具体细节将在稍后确定 MSI 是任何托管部署的关键部分,在任何此类决策中都应考虑到它。它可能不漂亮,但它就是存在的。 WiX 使 MSI 对工具的操作更加“开放”,而 MSI Factory 为您提供了让这一切变得简单的 UI。这就是我推荐它的原因(哎呀,这就是我使用它的原因!)。 我接受了这个答案,因为 WiX 系统能够做我想做的事,即使它看起来很复杂。以上是关于Delphi、安装程序和 Windows 7的主要内容,如果未能解决你的问题,请参考以下文章
Delphi 软件包安装错误:动态链接库 (DLL) 初始化例程失败
一个独立的 Delphi 应用程序,也可以作为 Windows 服务安装