千家信息网

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

发表于:2025-01-24 作者:千家信息网编辑
千家信息网最后更新 2025年01月24日,C/S软件打包部署神器InnoSetup怎么用,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。概述我们都知道做客户端软件,
千家信息网最后更新 2025年01月24日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安全错误 数据库的锁怎样保障安全 网络技术与应用春考212分 山东有实力的浪潮存储服务器测评 亚信数据库 有实力的存储服务器测评 石景山区企业软件开发多少钱 三级数据库技术应用题怎么画 会员登录服务器密码是多少 贷款数据库哪里找 网络安全宣传周微课堂 手机软件开发工程师待遇怎么样 软件开发周期是什么 食堂菜品管理系统数据库 数据库库与库语句做比对 宣武区软件开发者名单 宽带连接服务器没有响应怎么办 世界网络安全事件汇总 河南工程网络技术的技术开发 软件开发运行环境说明文档 网络安全隔离卡的作用 电信公司网络安全运维工程师工资 联想软件开发招聘 单片机是学什么软件开发 2021网络安全宣传周线上答题 推广软件开发服务哪些行业 数据库简单操作实验报告原理 深圳移动安全软件开发公司 想软件开发 广州浮生互联网科技有限公司 装了安全狗服务器很卡 互联网 金融科技 名单
0