Delphi、安装程序和Windows 7

7
作为一般转向 Windows 7 的一部分 - 所有应用程序都应该具有“安装程序体验”,我需要为我们的整个应用程序套件创建安装程序。我已经查看了InstallShield,但它似乎对于它所做的事情来说非常昂贵。我可以看看哪些安装产品?
这些安装程序需要在我们的构建机器上无人值守地构建,因此存在比仅仅是安装程序构建者更高的复杂性。
更新:
我已经查看了所有建议,它们看起来很好。我的计划涉及通过SCCM(或类似物)将东西推送给最终用户。我需要支持 MSI 吗?

你可以随时在Inno或NSIS中使用msiexec执行与MSI相关的任务。 - Mark Robinson
6个回答

21

我认为来自Jordan Russell的Inno Setup可以完成你想要的功能。哦,而且它是免费的。


2
我非常喜欢Inno,它有一个命令行界面,因此您可以将其与自动化构建一起使用。 - Tim Sullivan
2
我非常喜欢INNOSETUP,并认为任何基于MSI的技术都是一团糟,建议你远离那些,而选择像Inno-Setup这样的简单工具,它可以轻松地完成许多MSI工具无法完成的任务。 - Warren P
1
Inno Setup 还允许您使用类似 Delphi 的 Pascal 脚本来包含任何额外的安装逻辑。 - skamradt
@Warren P:同意。MSI……呃,从用户的角度来看,我讨厌在安全模式下无法卸载某些东西,因为它需要运行一个在安全模式下不起作用的服务。而且只能同时运行一个[卸载]程序。而且它需要很长时间才能“收集所需信息”——也就是做它应该做的事情。唉。 </rant> - Lucas Jones
就在昨天,我遇到了一个问题,Windows更新失败,因为DCOM服务停止了。因为MSI需要DCOM。嗯,当然啦?因为当我进行安装时,我想到的是远程过程调用和分布式COM。哈哈。我讨厌MSI。 - Warren P
+1 给 Inno Setup,它可能是最好的安装系统!现在它还有 Delphi 的本地专家 (http://www.rad-installer.com),所以你可以直接从 IDE 中使用它。 - Slappy

4
你可能想要了解一下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 中使用它。 - Slappy

2

1

我认为Delphi本身使用Installaware。然而,与Inno等“轻量级”系统相比,它是一个“重量级”的系统。对于某些人来说,轻型系统更受欢迎;而对于其他人,则相反。 - Warren P

1

我使用Just Great Software的DeployMaster已经很多年了,非常满意。
它可以集成到您的构建过程中。
虽然不是免费的,但价格非常合理。


1

如果您需要进行企业级安装,则MSI安装程序是理想的选择,创建MSI的好方法是使用基于XML的系统WiX。然而,所需的文件很复杂,因此我使用MSI Factory来创建安装程序,该程序处理所有常规要求,但随后输出可以通过我的构建脚本工具FinalBuilder构建和更新的WiX文件。这样,我就可以享受良好用户界面和开放式文件工具的优点,而不会陷入锁定。


为什么要推荐那些充满偶然复杂性的东西(如WIX/XML/MSI),除非你知道有人需要一些奇怪的小东西,比如无人值守远程推送安装。 - Warren P
Warren - 这正是我所需要的 - 我们将通过无人值守远程推送安装来推出应用程序 - 具体细节将在以后确定。 - mmmm
1
MSI是任何托管部署的关键部分,并且在做出任何此类决定时都应该考虑它。它可能看起来不太美观,但那就是现实。WiX使得MSI更加“开放”,可以通过工具进行操作,而MSI Factory提供了易于操作的用户界面。这就是我为什么推荐它(甚至可以说这就是我使用它的原因!)。 - mj2008
我已接受这个答案,因为WiX系统能够实现我想要的功能,即使它看起来是相当复杂的设置。 - mmmm

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接