请教,安装软件那一个好用?

时间:2021-12-30 17:08:52
我做好的Delphi程序,加上SQL数据库桌面版或网络版,如何做安装包?

我的想法是能不能用一个setup全部搞定程序的安装及数据库引擎安装及数据库附加,并创建桌面快捷方式及开始菜单?

方法最好是简单可靠一些,不知有没有这样的安装软件?

新手,求教大家了?谢谢!

14 个解决方案

#1


Inno
免费\开源\支持Pascal脚本

#2


引用 1 楼 cngst 的回复:
Inno
免费\开源\支持Pascal脚本

帮顶!

#3


INNO确实不错,建议楼主安装一个,看看帮助和例子,很容易上手的。

#4


关注。

#5


可以的。
我就是这样子的。
我用的是inno setup。下面有代码。
做了一个安装包,里面包括了应用软件和数据库软件。
用的数据库是msde桌面数据引擎,免费的。单个数据库最大2G,同时在线5人。


; 脚本用 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

#6


Wise、InstallShield。。。
用WinRAR自解压+批处理也行

#7


InstallShield挺不错的

#8


建议用innosetup,关键词:开源,支持pascal角本

#9


建议用innosetup,关键词:开源,支持pascal角本

#10


谢谢大家热心解答! 

inno我下载了一个,正在学习,但有个问题我还想不明白,我做好的数据库(甚至里面会有一些初始化数据)如何附加到Sql sever上去呢?

#11


关注。

#12


[Quote=引用 5 楼 haochin 的回复:]

Filename: "{app}\DataLink.exe"; Description: "{cm:LaunchProgram,立即新建数据库、配置连接参数?}"; Flags: nowait postinstall skipifsilent

谢谢你的热心回贴,上面这句我看不太懂,我要安装的数据库是SQL server 桌面版,已经做好的数据库比方说是“A1.mdf,a1.ldf”两个文件,如何安装完数据库程序后把这两个数据库附加上去呢?恳请给个例子....


#13


安装的程序不复杂的话Inno和InstallShield的设置都很简单的,相比而言Inno更简单些.

如果是安装程序需要比较复杂的配置过程的,建议还是使用InstallShield.

#14


自己做一个小软件,专门用来创建(附加数据库的)

#1


Inno
免费\开源\支持Pascal脚本

#2


引用 1 楼 cngst 的回复:
Inno
免费\开源\支持Pascal脚本

帮顶!

#3


INNO确实不错,建议楼主安装一个,看看帮助和例子,很容易上手的。

#4


关注。

#5


可以的。
我就是这样子的。
我用的是inno setup。下面有代码。
做了一个安装包,里面包括了应用软件和数据库软件。
用的数据库是msde桌面数据引擎,免费的。单个数据库最大2G,同时在线5人。


; 脚本用 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

#6


Wise、InstallShield。。。
用WinRAR自解压+批处理也行

#7


InstallShield挺不错的

#8


建议用innosetup,关键词:开源,支持pascal角本

#9


建议用innosetup,关键词:开源,支持pascal角本

#10


谢谢大家热心解答! 

inno我下载了一个,正在学习,但有个问题我还想不明白,我做好的数据库(甚至里面会有一些初始化数据)如何附加到Sql sever上去呢?

#11


关注。

#12


[Quote=引用 5 楼 haochin 的回复:]

Filename: "{app}\DataLink.exe"; Description: "{cm:LaunchProgram,立即新建数据库、配置连接参数?}"; Flags: nowait postinstall skipifsilent

谢谢你的热心回贴,上面这句我看不太懂,我要安装的数据库是SQL server 桌面版,已经做好的数据库比方说是“A1.mdf,a1.ldf”两个文件,如何安装完数据库程序后把这两个数据库附加上去呢?恳请给个例子....


#13


安装的程序不复杂的话Inno和InstallShield的设置都很简单的,相比而言Inno更简单些.

如果是安装程序需要比较复杂的配置过程的,建议还是使用InstallShield.

#14


自己做一个小软件,专门用来创建(附加数据库的)