怎么将Delphi程序打包成安装程序

时间:2021-12-09 18:41:39
前两周专周做了一个图书馆里系统,后台是SQL2000做的,前台用DELPHI的由于自己之前没有学过DELPHI临时看了些资料
终于把前台搞好了,现在我想把他弄成安装程序,我知道用Delphi自带的那个InstallShield可以搞定,但都是英文真是一头雾水,怎样才能把后台的数据库一起打包,在别人电脑安装下就可以用,不用那么麻烦还要去弄后代?有哪位高手解答下,不甚感激!

22 个解决方案

#1


Inno SetUp,软件已经跟你说了,先自己在网上找找教程再来问吧。

#2


DELPHI自带的就有呀,还有一个叫什么制作助手还是什么来的,也不错.

#3


安装制作SetupFactory7.0很好用

#4


把后台sqlserver一起打包??
楼主的意思是不是把odbc一起打包?
但是Windows已经都自带了sqlserver的odbc
如果程序是以ado连接数据库可以什么都不用管,只是在程序中设置好连接字符串就好
但如果是BDE确实需要将administrator BDE打包在安装程序中并自动进行设置

#5


引用 1 楼 musa2008 的回复:
Inno SetUp,软件已经跟你说了,先自己在网上找找教程再来问吧。
你啥时候跟我说了,网上都搜过了搜不到才跑来这问的

#6


Inno Setup + ISTool
前边是编译器,后边是编辑软件

#7


打包时使用inno setup,
楼主如果想要在安装软件时后台数据库服务(如sql server)一同安装,可以考虑使用msde来做为你的数据库引擎(msde,并发5个,单库最大2g),也可以考虑用网上流传的绿色sql 2k
步骤是这样子的:
1,到ms下载msde。40m的样子,解压缩,将里面的setup.ini配置好。
2,将配好的msde整个目录一并打包到你的安装文件中,(有些大啊,至少都有40m了。呵呵。)
将你的sql server数据库文件分离出来,也一并打包到安装文件中。
3,安装程序在copy完文件后,运行msde安装程序(这一步是写在inno setup的脚本里的,msde安装程序会按你事先设定好的setup.ini文件来安装)
4,安装完msde后,自动运行msde数据库服务。
5,写一个附加数据库的小软件,用来将你的数据库附加到msde数据库引擎上。(msde其实就是sql server)
6.安装完成,运行你的软件吧。。
具体见下面的inno setup 脚本:
; 脚本用 Inno Setup 脚本向导生成。
; 查阅文档获取创建 INNO SETUP 脚本文件详细资料!

[Setup]
AppName=JETT Hrms
AppVerName=JETT Hrms V1.0
AppPublisher=深圳市捷得科技有限公司
AppPublisherURL=http://www.jditt.com
AppSupportURL=http://www.jditt.com
AppUpdatesURL=http://www.jditt.com
DefaultDirName={pf}\JETT Hrms
DefaultGroupName=JETT Hrms
AllowNoIcons=yes
LicenseFile=D:\JETTHRMS\CopyRight.txt
OutputDir=D:\
OutputBaseFilename=JETT_Hrms_Setup_S
SetupIconFile=D:\JETTHRMS\ICO.ico
Compression=lzma
SolidCompression=yes

[Languages]
Name: "eng"; MessagesFile: "compiler:Default.isl"
;Name: "eng"; MessagesFile: "compiler:Languages\English.isl"

[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
Name: "quicklaunchicon"; Description: "{cm:CreateQuickLaunchIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
Name: yes; Description: 是; GroupDescription: 是否安装数据库服务?约需1-5分钟。如果您已有SQL Server,则无需安装。; Flags: exclusive
Name: no;  Description: 否; GroupDescription: 是否安装数据库服务?约需1-5分钟。如果您已有SQL Server,则无需安装。; Flags: exclusive unchecked

[Files]
Source: "JTHRP.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "DataLink.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "JTHRP.ini"; DestDir: "{app}"; Flags: ignoreversion
Source: "Main.jpg"; DestDir: "{app}"; Flags: ignoreversion
Source: "Maina.jpg"; DestDir: "{app}"; Flags: ignoreversion
Source: "JTHRP\*"; DestDir: "{app}\JTHRP"; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "Photos\photo.jpg"; DestDir: "{app}\Photos"; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "TempDB\*"; DestDir: "{app}\TempDB"; Flags: ignoreversion recursesubdirs createallsubdirs
;安装MSDE及query
Source: "D:\公司软件\SQL\MSDE\MSDE\*"; DestDir: "{app}\MSDE"; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "D:\公司软件\SQL\MSDE\Query\*"; DestDir: "{app}\Query"; Flags: ignoreversion recursesubdirs createallsubdirs
;安装指纹机控件
Source: "D:\我的工程\JETTHrms\FPTdll\commpro.dll"; DestDir: "{sys}"; Flags: ignoreversion
Source: "D:\我的工程\JETTHrms\FPTdll\comms.dll"; DestDir: "{sys}"; Flags: ignoreversion
Source: "D:\我的工程\JETTHrms\FPTdll\plce.dll"; DestDir: "{sys}"; Flags: ignoreversion
Source: "D:\我的工程\JETTHrms\FPTdll\rscagent.dll"; DestDir: "{sys}"; Flags: ignoreversion
Source: "D:\我的工程\JETTHrms\FPTdll\rscomm.dll"; DestDir: "{sys}"; Flags: ignoreversion
Source: "D:\我的工程\JETTHrms\FPTdll\tcpcomm.dll"; DestDir: "{sys}"; Flags: ignoreversion
Source: "D:\我的工程\JETTHrms\FPTdll\usbcomm.dll"; DestDir: "{sys}"; Flags: ignoreversion
Source: "D:\我的工程\JETTHrms\FPTdll\zkemsdk.dll"; DestDir: "{sys}"; Flags: ignoreversion
Source: "D:\我的工程\JETTHrms\FPTdll\zkemkeeper.dll"; DestDir: "{sys}"; Flags: ignoreversion onlyifdoesntexist regserver
;安装身份证阅读器控件
Source: "D:\我的工程\JETTHrms\CARDdll\license.dat"; DestDir: "C:\"; Flags: ignoreversion
Source: "D:\我的工程\JETTHrms\CARDdll\RegActiveX.bat"; DestDir: "{sys}"; Flags: ignoreversion
Source: "D:\我的工程\JETTHrms\CARDdll\SynIDCard.cer"; DestDir: "{sys}"; Flags: ignoreversion
Source: "D:\我的工程\JETTHrms\CARDdll\SynIDCard.spc"; DestDir: "{sys}"; Flags: ignoreversion
Source: "D:\我的工程\JETTHrms\CARDdll\SynIDCard.inf"; DestDir: "{sys}"; Flags: ignoreversion
Source: "D:\我的工程\JETTHrms\CARDdll\Syn.inf"; DestDir: "{sys}"; Flags: ignoreversion
Source: "D:\我的工程\JETTHrms\CARDdll\Syn.SED"; DestDir: "{sys}"; Flags: ignoreversion
Source: "D:\我的工程\JETTHrms\CARDdll\cert2spc.exe"; DestDir: "{sys}"; Flags: ignoreversion
Source: "D:\我的工程\JETTHrms\CARDdll\signcode.exe"; DestDir: "{sys}"; Flags: ignoreversion
Source: "D:\我的工程\JETTHrms\CARDdll\Syn_IDCardRead.dll"; DestDir: "{sys}"; Flags: ignoreversion
Source: "D:\我的工程\JETTHrms\CARDdll\makecert.exe"; DestDir: "{sys}"; Flags: ignoreversion
Source: "D:\我的工程\JETTHrms\CARDdll\sdtapi.dll"; DestDir: "{sys}"; Flags: ignoreversion
Source: "D:\我的工程\JETTHrms\CARDdll\certmgr.exe"; DestDir: "{sys}"; Flags: ignoreversion
Source: "D:\我的工程\JETTHrms\CARDdll\WltRS.dll"; DestDir: "{sys}"; Flags: ignoreversion
Source: "D:\我的工程\JETTHrms\CARDdll\SynIDCard.CAB"; DestDir: "{sys}"; Flags: ignoreversion
Source: "D:\我的工程\JETTHrms\CARDdll\iexpress.exe"; DestDir: "{sys}"; Flags: ignoreversion
Source: "D:\我的工程\JETTHrms\CARDdll\MAKECAB.EXE"; DestDir: "{sys}"; Flags: ignoreversion
Source: "D:\我的工程\JETTHrms\CARDdll\SynIDCard.ocx"; DestDir: "{sys}"; Flags: ignoreversion onlyifdoesntexist regserver
;安装身份证阅读器驱动
Source: "D:\我的工程\JETTHrms\CARDdriver\UsbDrv.inf"; DestDir: "{app}\CARDdriver"; Flags: ignoreversion
Source: "D:\我的工程\JETTHrms\CARDdriver\USBDrv.sys"; DestDir: "{app}\CARDdriver"; Flags: ignoreversion




; 注意: 不要在任何共享系统文件中使用“Flags: ignoreversion”

[Icons]
Name: "{group}\JETT Hrms"; Filename: "{app}\JTHRP.exe"
Name: "{group}\{cm:UninstallProgram,JETT Hrms}"; Filename: "{uninstallexe}"
Name: "{userdesktop}\JETT Hrms"; Filename: "{app}\JTHRP.exe"; Tasks: desktopicon
Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\JETT Hrms"; Filename: "{app}\JTHRP.exe"; Tasks: quicklaunchicon

[Run]
Filename: "{app}\MSDE\Setup.EXE"; Parameters: /Q; Tasks: yes
Filename: "{app}\MSDE\StartServer.BAT"; Parameters: /Q; Tasks: yes
Filename: "{app}\DataLink.exe"; Description: "{cm:LaunchProgram,立即新建数据库、配置连接参数?}"; Flags: nowait postinstall skipifsilent


msde安装脚本见以下;
[Options]                注:
SAPWD="haochin"          sa的密码
INSTANCENAME="Sql2K"     实例名
SECURITYMODE=SQL         认证方式 :为windows and sql
DISABLENETWORKPROTOCOLS=0 是否关闭远程连接    0 否。

另外,也可以将一个绿色的sql server2000的查询分析器一起打外进去,那个只有3m,方便调用sql server存储过程等。

#8


引用 3 楼 grace_zou 的回复:
安装制作SetupFactory7.0很好用

推荐

#9


又没人用过InstallAnywhere呢?听说比inno强大很多

#10


我一直用insatllshield 10.5

#11


引用 9 楼 harryfin 的回复:
又没人用过InstallAnywhere呢?听说比inno强大很多

又没人 -> 有没人

#12


SetupFactory7.0杀毒软件报毒

#13


若嫌英文界面麻烦,可用Tiger installer(老虎安装器),简洁易懂。

#14


Inno SetUp   网上下载,有说明的

#15


肥猫也行的!

#16


引用 11 楼 harryfin 的回复:
引用 9 楼 harryfin 的回复:

又没人用过InstallAnywhere呢?听说比inno强大很多

又没人 -> 有没人


我一般用:insatllshield 呵呵

#17


支持绿色软件,哈哈

#18


delphi编译出来的程序是绿色软件,不用安装运行环境。。。。

#19


用Inno 就可以了

#20


NSIS

#21


Inno SetUp,比较好用,自带范例。 
 

#22


好贴 哈哈哈哈哈哈哈哈哈哈哈

#1


Inno SetUp,软件已经跟你说了,先自己在网上找找教程再来问吧。

#2


DELPHI自带的就有呀,还有一个叫什么制作助手还是什么来的,也不错.

#3


安装制作SetupFactory7.0很好用

#4


把后台sqlserver一起打包??
楼主的意思是不是把odbc一起打包?
但是Windows已经都自带了sqlserver的odbc
如果程序是以ado连接数据库可以什么都不用管,只是在程序中设置好连接字符串就好
但如果是BDE确实需要将administrator BDE打包在安装程序中并自动进行设置

#5


引用 1 楼 musa2008 的回复:
Inno SetUp,软件已经跟你说了,先自己在网上找找教程再来问吧。
你啥时候跟我说了,网上都搜过了搜不到才跑来这问的

#6


Inno Setup + ISTool
前边是编译器,后边是编辑软件

#7


打包时使用inno setup,
楼主如果想要在安装软件时后台数据库服务(如sql server)一同安装,可以考虑使用msde来做为你的数据库引擎(msde,并发5个,单库最大2g),也可以考虑用网上流传的绿色sql 2k
步骤是这样子的:
1,到ms下载msde。40m的样子,解压缩,将里面的setup.ini配置好。
2,将配好的msde整个目录一并打包到你的安装文件中,(有些大啊,至少都有40m了。呵呵。)
将你的sql server数据库文件分离出来,也一并打包到安装文件中。
3,安装程序在copy完文件后,运行msde安装程序(这一步是写在inno setup的脚本里的,msde安装程序会按你事先设定好的setup.ini文件来安装)
4,安装完msde后,自动运行msde数据库服务。
5,写一个附加数据库的小软件,用来将你的数据库附加到msde数据库引擎上。(msde其实就是sql server)
6.安装完成,运行你的软件吧。。
具体见下面的inno setup 脚本:
; 脚本用 Inno Setup 脚本向导生成。
; 查阅文档获取创建 INNO SETUP 脚本文件详细资料!

[Setup]
AppName=JETT Hrms
AppVerName=JETT Hrms V1.0
AppPublisher=深圳市捷得科技有限公司
AppPublisherURL=http://www.jditt.com
AppSupportURL=http://www.jditt.com
AppUpdatesURL=http://www.jditt.com
DefaultDirName={pf}\JETT Hrms
DefaultGroupName=JETT Hrms
AllowNoIcons=yes
LicenseFile=D:\JETTHRMS\CopyRight.txt
OutputDir=D:\
OutputBaseFilename=JETT_Hrms_Setup_S
SetupIconFile=D:\JETTHRMS\ICO.ico
Compression=lzma
SolidCompression=yes

[Languages]
Name: "eng"; MessagesFile: "compiler:Default.isl"
;Name: "eng"; MessagesFile: "compiler:Languages\English.isl"

[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
Name: "quicklaunchicon"; Description: "{cm:CreateQuickLaunchIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
Name: yes; Description: 是; GroupDescription: 是否安装数据库服务?约需1-5分钟。如果您已有SQL Server,则无需安装。; Flags: exclusive
Name: no;  Description: 否; GroupDescription: 是否安装数据库服务?约需1-5分钟。如果您已有SQL Server,则无需安装。; Flags: exclusive unchecked

[Files]
Source: "JTHRP.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "DataLink.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "JTHRP.ini"; DestDir: "{app}"; Flags: ignoreversion
Source: "Main.jpg"; DestDir: "{app}"; Flags: ignoreversion
Source: "Maina.jpg"; DestDir: "{app}"; Flags: ignoreversion
Source: "JTHRP\*"; DestDir: "{app}\JTHRP"; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "Photos\photo.jpg"; DestDir: "{app}\Photos"; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "TempDB\*"; DestDir: "{app}\TempDB"; Flags: ignoreversion recursesubdirs createallsubdirs
;安装MSDE及query
Source: "D:\公司软件\SQL\MSDE\MSDE\*"; DestDir: "{app}\MSDE"; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "D:\公司软件\SQL\MSDE\Query\*"; DestDir: "{app}\Query"; Flags: ignoreversion recursesubdirs createallsubdirs
;安装指纹机控件
Source: "D:\我的工程\JETTHrms\FPTdll\commpro.dll"; DestDir: "{sys}"; Flags: ignoreversion
Source: "D:\我的工程\JETTHrms\FPTdll\comms.dll"; DestDir: "{sys}"; Flags: ignoreversion
Source: "D:\我的工程\JETTHrms\FPTdll\plce.dll"; DestDir: "{sys}"; Flags: ignoreversion
Source: "D:\我的工程\JETTHrms\FPTdll\rscagent.dll"; DestDir: "{sys}"; Flags: ignoreversion
Source: "D:\我的工程\JETTHrms\FPTdll\rscomm.dll"; DestDir: "{sys}"; Flags: ignoreversion
Source: "D:\我的工程\JETTHrms\FPTdll\tcpcomm.dll"; DestDir: "{sys}"; Flags: ignoreversion
Source: "D:\我的工程\JETTHrms\FPTdll\usbcomm.dll"; DestDir: "{sys}"; Flags: ignoreversion
Source: "D:\我的工程\JETTHrms\FPTdll\zkemsdk.dll"; DestDir: "{sys}"; Flags: ignoreversion
Source: "D:\我的工程\JETTHrms\FPTdll\zkemkeeper.dll"; DestDir: "{sys}"; Flags: ignoreversion onlyifdoesntexist regserver
;安装身份证阅读器控件
Source: "D:\我的工程\JETTHrms\CARDdll\license.dat"; DestDir: "C:\"; Flags: ignoreversion
Source: "D:\我的工程\JETTHrms\CARDdll\RegActiveX.bat"; DestDir: "{sys}"; Flags: ignoreversion
Source: "D:\我的工程\JETTHrms\CARDdll\SynIDCard.cer"; DestDir: "{sys}"; Flags: ignoreversion
Source: "D:\我的工程\JETTHrms\CARDdll\SynIDCard.spc"; DestDir: "{sys}"; Flags: ignoreversion
Source: "D:\我的工程\JETTHrms\CARDdll\SynIDCard.inf"; DestDir: "{sys}"; Flags: ignoreversion
Source: "D:\我的工程\JETTHrms\CARDdll\Syn.inf"; DestDir: "{sys}"; Flags: ignoreversion
Source: "D:\我的工程\JETTHrms\CARDdll\Syn.SED"; DestDir: "{sys}"; Flags: ignoreversion
Source: "D:\我的工程\JETTHrms\CARDdll\cert2spc.exe"; DestDir: "{sys}"; Flags: ignoreversion
Source: "D:\我的工程\JETTHrms\CARDdll\signcode.exe"; DestDir: "{sys}"; Flags: ignoreversion
Source: "D:\我的工程\JETTHrms\CARDdll\Syn_IDCardRead.dll"; DestDir: "{sys}"; Flags: ignoreversion
Source: "D:\我的工程\JETTHrms\CARDdll\makecert.exe"; DestDir: "{sys}"; Flags: ignoreversion
Source: "D:\我的工程\JETTHrms\CARDdll\sdtapi.dll"; DestDir: "{sys}"; Flags: ignoreversion
Source: "D:\我的工程\JETTHrms\CARDdll\certmgr.exe"; DestDir: "{sys}"; Flags: ignoreversion
Source: "D:\我的工程\JETTHrms\CARDdll\WltRS.dll"; DestDir: "{sys}"; Flags: ignoreversion
Source: "D:\我的工程\JETTHrms\CARDdll\SynIDCard.CAB"; DestDir: "{sys}"; Flags: ignoreversion
Source: "D:\我的工程\JETTHrms\CARDdll\iexpress.exe"; DestDir: "{sys}"; Flags: ignoreversion
Source: "D:\我的工程\JETTHrms\CARDdll\MAKECAB.EXE"; DestDir: "{sys}"; Flags: ignoreversion
Source: "D:\我的工程\JETTHrms\CARDdll\SynIDCard.ocx"; DestDir: "{sys}"; Flags: ignoreversion onlyifdoesntexist regserver
;安装身份证阅读器驱动
Source: "D:\我的工程\JETTHrms\CARDdriver\UsbDrv.inf"; DestDir: "{app}\CARDdriver"; Flags: ignoreversion
Source: "D:\我的工程\JETTHrms\CARDdriver\USBDrv.sys"; DestDir: "{app}\CARDdriver"; Flags: ignoreversion




; 注意: 不要在任何共享系统文件中使用“Flags: ignoreversion”

[Icons]
Name: "{group}\JETT Hrms"; Filename: "{app}\JTHRP.exe"
Name: "{group}\{cm:UninstallProgram,JETT Hrms}"; Filename: "{uninstallexe}"
Name: "{userdesktop}\JETT Hrms"; Filename: "{app}\JTHRP.exe"; Tasks: desktopicon
Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\JETT Hrms"; Filename: "{app}\JTHRP.exe"; Tasks: quicklaunchicon

[Run]
Filename: "{app}\MSDE\Setup.EXE"; Parameters: /Q; Tasks: yes
Filename: "{app}\MSDE\StartServer.BAT"; Parameters: /Q; Tasks: yes
Filename: "{app}\DataLink.exe"; Description: "{cm:LaunchProgram,立即新建数据库、配置连接参数?}"; Flags: nowait postinstall skipifsilent


msde安装脚本见以下;
[Options]                注:
SAPWD="haochin"          sa的密码
INSTANCENAME="Sql2K"     实例名
SECURITYMODE=SQL         认证方式 :为windows and sql
DISABLENETWORKPROTOCOLS=0 是否关闭远程连接    0 否。

另外,也可以将一个绿色的sql server2000的查询分析器一起打外进去,那个只有3m,方便调用sql server存储过程等。

#8


引用 3 楼 grace_zou 的回复:
安装制作SetupFactory7.0很好用

推荐

#9


又没人用过InstallAnywhere呢?听说比inno强大很多

#10


我一直用insatllshield 10.5

#11


引用 9 楼 harryfin 的回复:
又没人用过InstallAnywhere呢?听说比inno强大很多

又没人 -> 有没人

#12


SetupFactory7.0杀毒软件报毒

#13


若嫌英文界面麻烦,可用Tiger installer(老虎安装器),简洁易懂。

#14


Inno SetUp   网上下载,有说明的

#15


肥猫也行的!

#16


引用 11 楼 harryfin 的回复:
引用 9 楼 harryfin 的回复:

又没人用过InstallAnywhere呢?听说比inno强大很多

又没人 -> 有没人


我一般用:insatllshield 呵呵

#17


支持绿色软件,哈哈

#18


delphi编译出来的程序是绿色软件,不用安装运行环境。。。。

#19


用Inno 就可以了

#20


NSIS

#21


Inno SetUp,比较好用,自带范例。 
 

#22


好贴 哈哈哈哈哈哈哈哈哈哈哈