创建一个安装程序

11

我只是想制作一个安装程序。如何处理将文件存储在exe文件中,然后将它们提取到安装目录的最佳方式是什么?

例如,我有我的installer.exe文件,我希望它包含以下内容:

  • 主可执行文件
  • 3个*.db文件

在选择安装目录并单击安装后,我希望所包含的文件被提取到所选择的安装目录中,但我不知道如何将需要提取的文件存储在安装程序中。


1
为什么不使用标准安装程序或自解压归档文件呢? - CodesInChaos
12
最好的方法是使用现成的安装工具,例如InnoSetup。自己编写安装程序几乎没有必要。 - David Heffernan
+1 我完全同意CodeInChaos和David的观点,基于我自己的过去经验。自己制作安装程序比它所值得的麻烦太多了。虽然不是不可能做到,但你需要处理很多事情,如权限、文件关联、打包/提取文件、注册表等。正如David建议的那样,使用InnoSetup会在长期运行中为你节省很多痛苦,相信我。 - user741875
谢谢大家,我会看一下 :) - user863551
4个回答

17

Inno Setup 是一个非常有趣的项目,它拥有许多功能(包括脚本语言和插件),并且是用 Delphi 编写的。

但是看看 NSIS 安装程序。它没有用 Delphi 编写,但更加轻量级。只需创建一个简单的 .ini 文件,你就可以创建完整的安装程序。例如,看看我们如何轻松地为我们的小型安全记事本工具创建了一个安装程序 - 这与您的需求非常相似。

我通常使用 Delphi 代码创建自定义安装程序。在某些情况下,如果你不必使用许多功能,但需要重用一些现有代码,则这可能是有意义的。

为此,我使用我们的两个开源单元:

  • 我们的PasZip 单元可以直接从 exe 创建一个独立的解压缩器 - 参见示例代码;
  • 我们的LVCL 类能够创建非常小的可执行文件。

最后一个建议:不要使用 upx 或其他打包工具打包你的 exe,因为它倾向于在一些反病毒软件中将 Delphi 可执行文件误报为恶意软件。


请查看RAD & Installer(http://www.rad-installer.com),这是Delphi/C++ Builder的Inno Setup扩展。 - Slappy

2
我们使用Setup Factory。它很容易学习和使用,并且可以与我们的自动化构建过程集成,使用Final Builder。 Setup Factory

0
所有安装程序(Inno、Setup Factory、NSIS安装程序)都显示虚假阳性病毒问题。 为了解决这个问题,需要使用签名工具为您的软件创建一个密钥,但这是需要付费的。

0

我之前用 Delphi 7 制作了一个安装程序,但由于需要提升权限才能复制文件到 Program Files 目录下,所以安装后的应用程序也会以管理员权限运行。这不是我想要的行为。

现在我采用了一种新的方法解决了这个问题,并制作了一个演示程序,可以处理大多数安装程序需要完成的常见功能。

这个演示程序完全使用 Delphi 7(32位)编写,并已上传至 Github,供所有人使用。希望对大家有所帮助。

https://github.com/kimherrero/DelphiAppSetupDemo


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