2012-01-07 137 views
8

我只是想做一个安装程序。处理exe文件中的存储文件然后将它们提取到安装目录的最佳方法是什么?创建安装程序

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

  • 主要可执行文件
  • 3×* db文件

当选择安装目录并单击安装,我希望将包含的文件解压到选定的安装目录,但是我找不到如何将需要解压的文件存储在安装程序中。

+1

为什么不只是使用标准的安装程序或自解压存档? – CodesInChaos 2012-01-07 19:40:14

+10

最好的方法是使用现成的安装工具,例如InnoSetup。你自己写这个很值得。 – 2012-01-07 19:49:44

+0

+1根据我自己的过去经验,我完全同意CodeInChaos和David的观点。这太麻烦了,值得你自己去做。这不是不可能的,但是有很多东西需要处理,例如权限,文件关联,打包/解压缩文件,注册表等等。正如David所建议的,使用InnoSetup将会为您节省很多长期的痛苦,信任我。 – 2012-01-07 19:52:42

回答

14

Inno Setup很有意思。这是一个巨大的项目,具有很多功能(包括脚本语言和插件),并使用Delphi编码。

但看看NSIS installer。它不是用德尔福写的,但它更轻。创建一个简单的.ini文件,你已经完成了完整的安装程序。例如,看看如何为our small Secure NotePad tool创建安装程序非常简单 - 非常类似于您的需求。

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

对于这一点,我用两个我们的开源单位:

  • 我们PasZip unit是能够从应用程序中创建一个独立的unzipper,直接 - 见示例代码;
  • 我们的LVCL classes哪些能够创建非常小的可执行文件。

最后的忠告:不UPX或其它加壳打包你的exe文件,因为它往往会造成一些防病毒软件相关的德尔福可执行文件误报。

+0

看起来不错,我会看看它谢谢。 – MrDKOz 2012-01-07 22:47:40

+0

请参阅RAD&Installer(http://www.rad-installer.com),它是Delphi/C++ Builder的Inno Setup扩展。 – Slappy 2016-08-24 06:33:08

2

我们使用安装工厂。学习和使用很简单,并使用Final Builder与我们的自动构建过程集成。

Setup Factory