千家信息网

C/S软件打包部署神器InnoSetup怎么用

发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,C/S软件打包部署神器InnoSetup怎么用,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。概述我们都知道做客户端软件,
千家信息网最后更新 2025年12月02日C/S软件打包部署神器InnoSetup怎么用

C/S软件打包部署神器InnoSetup怎么用,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

概述

我们都知道做客户端软件,一般交付给客户的都是exe的安装包。那么我们平常开发完成之后,如何把程序进行打包呢。找了下发现Inno Setup是个不错的选择。

InnoSetup 是一个免费的 Windows 安装程序制作软件。第一次发表是在 1997 年,Inno Setup 今天在功能设置和稳定性上的竞争力可能已经超过一些商业的安装程序制作软件。

能做什么

1.支持现在所有正在使用的 Windows 版本: 7, 2008 R2, Vista, XP, 2008,2003, 2000, Me, 98, 95, 和 NT 4.0 (不需要服务包)。

2.广泛支持在 64 位 的 Windows XP and Windows Server2003 版本的操作系统中的 64 位应用程序安装。支持 x64 和 Itanium 两个结构。(在 Itanium 结构中,必须在 64 位模式安装 Service Pack 1。)

3.支持创建单个EXE 格式的安装程序,使你的程序可以很方便地在网络上发表。同时也支持磁盘延伸。

4.标准的Windows 2000/XP 样式向导界面。

5.定制安装类型,例如:完整安装,最小安装,自定义安装。

6.完整的卸载功能。

7.文件安装:

包括完全的"压缩"支持,bzip2 和 7-Zip LZMA 文件压缩。安装程序可以比较文件版本信息,替换正在使用的文件,使用共享文件计数,注册DLL/OCX 和类型库,以及安装字体。

8.可以在任意地方创建快捷方式,包括开始菜单和桌面。

9.创建注册表 和.INI 条目。

10.在安装之前、之中或之后可运行其他程序。

11.支持多语言安装。

12.支持密码和加密安装。

13.支持数字签名 、安装和卸载。

14.后台安装和后台卸载。

15.Unicode安装。(Windows 2000/XP 或更高)

16.完整的Pascal 脚本 引擎选项于运行期高级自定义安装和卸载。

17.全部源代码公开(Borland Delphi 2.0-5.0 和 2009)。

创建安装程序的方式:脚本

安装程序用编译脚本的方式创建,脚本其实就是一个类似.INI 文件格式的 ASCII 码文本文件。(它不象你想象的那么复杂!)。Unicode Inno Setup支持 UTF-8 编码文本文件。

脚本用一个".iss"(表示 Inno Setup Script脚本) 的扩展名。脚本控制着安装程序的所有方面。由它指定哪些文件将被安装到什么地方,在哪里创建快捷方式,且被命名为什么。

脚本文件一般可以用安装程序编译器程序内置的编辑器进行编辑。在你编写完脚本后,下一个最终步骤就是选择安装程序编译器中的"编译"。创建完成后,就可以运行根据你脚本编译的安装程序了。按默认,这个安装程序创建在包含脚本文件目录下的名为"输出"目录中。

如果你想看看它是怎样工作的,启动安装程序编译器,单击"文件 | 打开",并选择位于 Inno Setup 安装目录下的Examples 子目录中的一个脚本文件。(你也可以将这些示例脚本作为你自己编写脚本的模板。)

以下是我之前的项目的脚本

; Script generated by the Inno Setup Script Wizard. ; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!  #define MyAppName "主机助手" #define MyAppVersion "1.1.1.7" #define MyAppPublisher "点击网络, 技术部." #define MyAppURL "http://yroot.bidns.net/" #define MyAppExeName "主机助手.exe"  [Setup] ; NOTE: The value of AppId uniquely identifies this application. ; Do not use the same AppId value in installers for other applications. ; (To generate a new GUID, click Tools | Generate GUID inside the IDE.) AppId={{CD9818E0-FEE2-418E-9775-15F50AE2229E} AppName={#MyAppName} AppVersion={#MyAppVersion} ;AppVerName={#MyAppName} {#MyAppVersion} AppPublisher={#MyAppPublisher} AppPublisherURL={#MyAppURL} AppSupportURL={#MyAppURL} AppUpdatesURL={#MyAppURL} DefaultDirName={pf}\ZhugAssistant DisableProgramGroupPage=yes OutputDir=C:\Users\admin\Desktop OutputBaseFilename=主机助手安装包 SetupIconFile=C:\Users\admin\Documents\Visual Studio 2010\Projects\yroot-10-24\yroot\bin\Debug\images\title.ico Compression=lzma SolidCompression=yes  [Languages] Name: "english"; MessagesFile: "compiler:Default.isl"  [Tasks] Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: exclusive Name: "quicklaunchicon"; Description: "{cm:CreateQuickLaunchIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked    [Files] Source: "D:\Debug\主机助手.exe"; DestDir: "{app}"; Flags: ignoreversion Source: "D:\Debug\AccessSetup.exe"; DestDir: "{app}"; Flags: ignoreversion Source: "D:\Debug\conf\*"; DestDir: "{app}\conf\"; Flags: ignoreversion recursesubdirs createallsubdirs Source: "D:\Debug\data\*"; DestDir: "{app}\data\"; Flags: ignoreversion recursesubdirs createallsubdirs Source: "D:\Debug\images\*"; DestDir: "{app}\images\"; Flags: ignoreversion recursesubdirs createallsubdirs Source: "D:\Debug\tools\*"; DestDir: "{app}\tools\"; Flags: ignoreversion recursesubdirs createallsubdirs Source: "D:\Debug\CSkin.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "D:\Debug\DiskQuotaTypeLibrary.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "D:\Debug\DMSkin.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "D:\Debug\form_data_path.txt"; DestDir: "{app}"; Flags: ignoreversion Source: "D:\Debug\Interop.ADODB.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "D:\Debug\Interop.ADOX.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "D:\Debug\Interop.FsrmLib.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "D:\Debug\Interop.IISOle.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "D:\Debug\Interop.TaskScheduler.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "D:\Debug\MetroFramework.Design.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "D:\Debug\MetroFramework.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "D:\Debug\MetroFramework.Fonts.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "D:\Debug\Microsoft.Web.Administration.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "D:\Debug\Microsoft.Win32.TaskScheduler.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "D:\Debug\MySql.Data.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "D:\Debug\SimpleUpdater.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "D:\Debug\yroot.vshost.exe"; DestDir: "{app}"; Flags: ignoreversion Source: "D:\Debug\yroot.vshost.exe.config"; DestDir: "{app}"; Flags: ignoreversion Source: "D:\Debug\yroot.vshost.exe.manifest"; DestDir: "{app}"; Flags: ignoreversion Source: "D:\Debug\yroot_beta.vshost.exe"; DestDir: "{app}"; Flags: ignoreversion Source: "D:\Debug\yroot_beta.vshost.exe.config"; DestDir: "{app}"; Flags: ignoreversion Source: "D:\Debug\yroot_beta.vshost.exe.manifest"; DestDir: "{app}"; Flags: ignoreversion Source: "D:\Debug\主机助手.exe"; DestDir: "{app}"; Flags: ignoreversion Source: "D:\Debug\主机助手.exe.config"; DestDir: "{app}"; Flags: ignoreversion Source: "D:\Debug\主机助手.pdb"; DestDir: "{app}"; Flags: ignoreversion ; NOTE: Don't use "Flags: ignoreversion" on any shared system files  [Icons] Name: "{commonprograms}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}" Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon Name: "{group}\{cm:UninstallProgram,主机助手}"; Filename: "{uninstallexe}"    ;[Components]   ;Name: Access; Description: "Access支持" ; Types: Full    [Messages]    ;卸载对话框说明   ConfirmUninstall=您真的想要从电脑中卸载主机助手吗?%n%n按 [是] 将会删除 %1 以及它的组件;%n按 [否] 则让软件继续留在您的电脑上.    [Run] Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent  [Registry]   Root: HKLM ;SubKey:"Software\ZhugAssistant";ValueType:dword;ValueName:config;ValueData:10 ;Flags: uninsdeletekey  [code] //init setup function InitializeSetup(): boolean;   //var var Istoken: boolean; //avoid setup again    begin        Istoken := true;         if RegValueExists(HKEY_LOCAL_MACHINE, 'SOFTWARE\ZhugAssistant', 'config') then   begin       MsgBox('程序已安装,请卸载后再尝试安装!',mbConfirmation, MB_OK);       Istoken := false;   end else   begin        Istoken := true;   end;   Result := Istoken;   end;  //next button function NextButtonClick(CurPageID: Integer): Boolean;   //var var ResultCode: Integer;   var IsSetup : Boolean;   begin   IsSetup := true ;   case CurPageID of       wpReady:         begin          if not RegValueExists(HKEY_LOCAL_MACHINE, 'SOFTWARE\Classes\CLSID\{6F3DD387-5AF2-492B-BDE2-30FF2F451241}\InprocServer32\12.0.0.0', 'RuntimeVersion') then   begin             if MsgBox('程序执行需要Access数据库的支持,是否现在安装?', mbConfirmation, MB_YESNO) = idYes then begin              ExtractTemporaryFile('AccessSetup.exe');    ExtractTemporaryFile('DMSkin.dll');             if not Exec(ExpandConstant('{tmp}\AccessSetup.exe'), '', '', SW_SHOWNORMAL, ewWaitUntilTerminated, ResultCode) then                 MsgBox('Access安装出错:' #13#13 ' ' + SysErrorMessage(ResultCode) + '.', mbError, MB_OK);             end else begin                   IsSetup := false ;             end ;             BringToFrontAndRestore();           end;         end;   end;   Result := IsSetup;   end;

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。

程序 脚本 文件 支持 主机 助手 编译 软件 方式 版本 目录 编译器 选择 制作软件 功能 后台 地方 客户 就是 文本 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 Q绑查询16e数据库 网盘 上海智能软件开发项目 审核软件开发过程 数据库和离散数学的选修课程 个性化网络技术是什么 红桥区数据网络技术答疑解惑 南通网站服务器哪个厂家质量好 怎么通过页面抓包找到后台数据库 我的世界服务器没有红叉 计算机网络安全证培训资料 三年级小学生网络安全简易手抄报 昌平区定制软件开发规定 服务器怎么用阵列管理工具 软件开发专业知识深度 成都软件开发园区 个人自考计算机网络技术 税控服务器管理系统进不去 明日之后优化服务器好吗 通信软件开发工程师笔试题 怎样用云服务器安装软件 0基础如何软件开发 票据交易软件开发 给软件开发工程师的感谢信 TcL软件开发在几个城市 应用层的网络安全需求 安顺租房网络安全 北京唐爱时空网络技术 华为服务器虚拟化优势 央行3月金融统计数据库 组策略如何设置补丁服务器
0