InnoSetup制作安装包(EXE)

  1. 功能描述
    1.666666.war为项目war包,666666.bat为启动war包脚本,通过InnoSetup将它们打包到安装包666666.exe
    2.666666.exe安装包安装过程中将666666.bat注册为自启动服务,安装结束自动执行脚本启动项目666666.war
    ----------------------------------------666666.bat----------------------------------------
    @echo off
    start /B javaw -jar "D:\666666.war"
  2. InnoSetup下载
  3. 生成安装程序














  4. 解释安装程序
    1.#define MyAppName "AAA":定义一个名为MyAppName的常量,并赋值为"AAA"。
    2.#define MyAppVersion "1.0":定义一个名为MyAppVersion的常量,并赋值为"1.0"。
    3.#define MyAppPublisher "BBB":定义一个名为MyAppPublisher的常量,并赋值为"BBB"。
    4.#define MyAppURL "CCC":定义一个名为MyAppURL的常量,并赋值为"CCC"。
    5.[Setup]:这是一个安装脚本的头部标记,用于指定安装信息。
    6.AppId={
         
         {9BCA7C00-6B43-4EBB-B710-EE01EF415EE4}:指定安装包的唯一标识符,使用GUID格式。
    7.AppName={#MyAppName}:指定安装包的名称,使用MyAppName常量的值。
    8.AppVersion={#MyAppVersion}:指定安装包的版本号,使用MyAppVersion常量的值。
    9.AppPublisher={#MyAppPublisher}:指定安装包的发布者名称,使用MyAppPublisher常量的值。
    10.AppPublisherURL={#MyAppURL}:指定安装包的发布者网址,使用MyAppURL常量的值。
    11.AppSupportURL={#MyAppURL}:指定安装包的技术支持网址,使用MyAppURL常量的值。
    12.AppUpdatesURL={#MyAppURL}:指定安装包的更新网址,使用MyAppURL常量的值。
    13.DefaultDirName={autopf}{#MyAppName}:指定安装包的默认安装路径,使用MyAppName常量的值。
    14.DefaultGroupName={#MyAppName}:指定安装包在开始菜单中的默认分组名称,使用MyAppName常量的值。
    15.PrivilegesRequired=lowest:如果取消注释此行,则将在非管理员安装模式下运行安装程序(仅为当前用户安装)。
    16.OutputDir=C:\Users\Administrator\Desktop:指定生成安装包的目标目录。
    17.OutputBaseFilename=666666:指定生成的安装包的文件名。
    18.Compression=lzma:指定使用的压缩算法。
    19.SolidCompression=yes:指定是否对文件进行实体化压缩。
    20.WizardStyle=modern:指定使用的安装程序向导界面风格。
    21.[Languages]:这是一个安装脚本的语言部分,用于指定语言文件。
    22.Name: "english"; MessagesFile: "compiler:Default.isl":指定使用英语作为安装程序的语言,使用默认的语言文件。
    23.[Files]:这是一个安装脚本的文件部分,用于指定需要拷贝的文件信息。
    24.Source: "D:\666666.war":指定需要拷贝的源文件路径。
    25.DestDir: "{app}":指定目标文件夹,这里使用了默认
  5. 编辑安装程序
    [Run]
    Filename: "cmd.exe"; Parameters: "/c sc query 666666 && sc delete 666666"; Flags: runhidden
    Filename: "cmd.exe"; Parameters: "/c sc create 666666 binPath= ""{app}\666666.bat"" start= auto"; Flags: runhidden
    Filename: "{app}\666666.bat"; Flags: postinstall runasoriginaluser
    
    在这个代码中,第一行使用 sc query 命令来检查是否存在名为 666666 的服务。如果存在,sc query 命令将返回服务的信息,
    否则将返回错误信息。使用 && 运算符将 sc delete 命令和 sc query 命令组合在一起,只有在 sc query 命令返回成功时才
    会执行 sc delete 命令。sc delete 命令将删除名为666666的服务。接下来,我们使用 sc create 命令创建一个名为666666 
    的服务,并将服务的二进制文件设置为 {app}\666666.bat。start=auto 意味着服务将在系统启动时自动启动。
    
    最后一行是用来运行 {app}\666666.bat 文件,以便在安装完成后运行该脚本。runasoriginaluser 标记意味着该脚本将以安
    装程序运行时的相同权限级别运行。


  6. 运行安装程序(666666.exe)





猜你喜欢

转载自blog.csdn.net/tongxin_tongmeng/article/details/130061643