• 安装制作软件InnoSetup


    InnoSetup介绍

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

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

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

      Inno Setup 安装目录下的Examples 子目录中有好多模板脚本文件可供参考。

     innoSetup功能

    1.支持现在所有正在使用的 Windows 版本: 

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

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

    4.完整的卸载功能。

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

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

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

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

    9.支持多语言安装。

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

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

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

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

    14.全部源代码公开 (Delphi)。

    InneSetup脚本

    典型inneSetup脚本

     1 [Languages]
     2 Name: "chinesesimp"; MessagesFile: "compiler:Default.isl"
     3 
     4 [Setup]
     5 AppName=光软集团多媒体管理系统 
     6 AppVersion=V1.0
     7 WizardStyle=modern
     8 DefaultDirName=D:FounderCB
     9 DefaultGroupName=光软集团 
    10 UninstallDisplayIcon={app}uninstall.exe
    11 Compression=lzma2
    12 SolidCompression=yes
    13 OutputDir=install
    14 SetupIconFile=D:多媒体安装盘iconlogo.ico
    15 OutputBaseFilename=founderCB_setup
    16 WizardImageFile=D:多媒体安装盘安装.bmp
    17 PrivilegesRequired=admin
    18 ;WizardSmallImageFile=D:多媒体安装盘1.bmp
    19 
    20 [Files]
    21 Source: "D:多媒体安装盘mysql-8.0.21*"; DestDir: "{app}mysql-8.0.21";Flags:igNoreversion recursesubdirs createallsubdirs
    22 Source: "D:多媒体安装盘openjdk-11.0.2*"; DestDir: "{app}openjdk-11.0.2";Flags:igNoreversion recursesubdirs createallsubdirs
    23 Source: "D:多媒体安装盘	omcat-9.0.39*"; DestDir: "{app}	omcat-9.0.39";Flags:igNoreversion recursesubdirs createallsubdirs
    24 Source: "D:多媒体安装盘chrome-84*"; DestDir: "{app}chrome-84";Flags:igNoreversion recursesubdirs createallsubdirs
    25 Source: "D:多媒体安装盘initService.bat"; DestDir: "{app}";Flags:igNoreversion recursesubdirs createallsubdirs
    26 Source: "D:多媒体安装盘startup.bat"; DestDir: "{app}";Flags:igNoreversion recursesubdirs createallsubdirs
    27 Source: "D:多媒体安装盘uninstallService.bat"; DestDir: "{app}";Flags:igNoreversion recursesubdirs createallsubdirs
    28 Source: "D:多媒体安装盘iconlogo.ico"; DestDir: "{app}";Flags:igNoreversion recursesubdirs createallsubdirs
    29 ;Source: "D:多媒体安装盘
    untime.exe"; DestDir: "{app}";Flags:igNoreversion recursesubdirs createallsubdirs
    30 
    31 [Icons]
    32 Name: "{group}光软集团"; Filename: "{app}startup.bat";IconFilename:"{app}iconlogo.ico"
    33 Name: "{userdesktop}光软集团"; Filename: "{app}startup.bat";IconFilename:"{app}iconlogo.ico"
    34 
    35 [INI]
    36 Filename:"{app}mysql-8.0.21my.ini";Section:"mysqld";Key:"basedir"; String:"{app}mysql-8.0.21"
    37 Filename:"{app}mysql-8.0.21my.ini";Section:"mysqld";Key:"datadir"; String:"{app}mysql-8.0.21data"
    38 
    39 [Run]
    40 ;Filename: "{app}
    untime.exe"; Description: "{cm:LaunchProgram,为操作系统安装运行库}"; Flags: postinstall skipifsilent 
    41 Filename: "{app}initService.bat"; Description: "{cm:LaunchProgram,初始化服务脚本}"; Flags: postinstall skipifsilent 
    42 Filename: "{app}startup.bat"; Description: "{cm:LaunchProgram,光软集团多媒体管理系统}"; Flags: postinstall skipifsilent 
    43 [UninstallRun]
    44 Filename: "{app}uninstallService.bat"; Flags: skipifdoesntexist
    45 [code]
    46 //function InitializeSetup (): Boolean; 
    47 //begin
    48    //MsgBox('请确保以管理员权限安装!', mbInformation, MB_OK);
    49    //Result := true;     
    50 //end; 

    设置管理员权限安装

    实际制作软件安装包时,需要在安装完成后执行初始化脚本,而win10中设置环境变量等操作都需要管理员权限,因此,需要设置为管理员权限启动的安装包。

    但是很尴尬,网上使用Resource Hacker修改为管理员权限的只是改了个图标,并不会使编译好的安装程序要求管理员权限安装。

  • 相关阅读:
    汉诺塔学习笔记,有不正确的地方请小伙伴们指正~·~
    梯有N阶,上楼可以一步上一阶,也可以一步上二阶。编写一个程序,计算共有多少中不同的走法?
    HTTP Status 500
    java基础知识
    JAVA多线程和并发基础面试问答
    thymeleaf中的th:remove用法
    thymeleaf:局部变量 th:with
    springboot: thymeleaf 使用详解
    eclipse修改工作目录颜色
    The user specified as a definer ('root'@'%') does not exist
  • 原文地址:https://www.cnblogs.com/guanghe/p/13863899.html
Copyright © 2020-2023  润新知