我做好的Delphi程序,加上SQL数据库桌面版或网络版,如何做安装包?我的想法是能不能用一个setup全部搞定程序的安装及数据库引擎安装及数据库附加,并创建桌面快捷方式及开始菜单?方法最好是简单可靠一些,不知有没有这样的安装软件?新手,求教大家了?谢谢!

解决方案 »

  1.   

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

  2.   

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

  3.   

    可以的。
    我就是这样子的。
    我用的是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
      

  4.   

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

  5.   

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

  6.   

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

  7.   

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

  8.   

    [Quote=引用 5 楼 haochin 的回复:]Filename: "{app}\DataLink.exe"; Description: "{cm:LaunchProgram,立即新建数据库、配置连接参数?}"; Flags: nowait postinstall skipifsilent谢谢你的热心回贴,上面这句我看不太懂,我要安装的数据库是SQL server 桌面版,已经做好的数据库比方说是“A1.mdf,a1.ldf”两个文件,如何安装完数据库程序后把这两个数据库附加上去呢?恳请给个例子....
      

  9.   

    安装的程序不复杂的话Inno和InstallShield的设置都很简单的,相比而言Inno更简单些.如果是安装程序需要比较复杂的配置过程的,建议还是使用InstallShield.