zoukankan      html  css  js  c++  java
  • inno打包教程

    打包成 exe 安装程序的工具有:innoSetup、HofoSetup、NSIS 等。

      innoSetup:用过

      NSIS:没用过

      HofoSetup:简单方便,但是收费


     Inno Setup 编程技术:https://blog.csdn.net/u011287646/article/details/81629252

    一、基本概念:https://blog.csdn.net/wulei0605/article/details/7244708

      1、段:每个段控制一个不同方面的安装程序部分。每个段用包含在括号 [] 中的段名开始,每个段里面是一些相关的条目。

      2、常量:脚本中的项目大部分可以嵌入常量。这些预定义的字符被包含在括弧 { } 中。

        a、{app} :目录常量

        b、{win} :系统的 Windows 目录

        c、{sys} :系统的 Windows System 目录

        d、{src} :安装程序文件所在目录

        e、{sd} :Windows 系统所在的驱动器。一般来说是“C:”。

        等等。。。

      3、

    二、inno Setup 基础配置:【inno Setup 5.xx 和 6.xx 有的配置有点不一样的】 https://www.cnblogs.com/barrysgy/archive/2011/11/15/2249783.html  或  https://www.cnblogs.com/yplong/p/3721334.html

    1、宏定义 常量:

    #define MyAppName "我的app"

    2、配置:

    ;这儿以行来分 不区分大小写
    [Setup]
    ;AppName的值会出现在 安装开始界面 "欢迎使用AppName安装向导"
    AppName=InnoExample
    ;AppVerName的值会出现在 安装开始界面 "现在将安装AppVerName到你的电脑中."  如果没这个字段就会用AppName值代替
    ;AppVerName 与 AppVersion 最少要有一个
    AppVerName=My Inno Example Version 1.0
    ;AppVersion设置应用程序版本号 因为应用程序里面可能有好多个程序 整体有个版本, 在卸载程序时有版本号就是这个版本了 可不填写
    AppVersion=1.0.0.0
    ;版权 要设置windowvisible才能在右下角看到
    ;AppCopyright=版权所有(C) 2011, sgy.com
    ;windowvisible会在安装程序背后设置一个大的窗口 而不是对话框形式
    ;WindowVisible=true
    ;下面三个都是在添加删除程序时才能看到的信息
    ;AppPublisher=heromyth
    ;AppPublisherURL=http://www.sgy.com
    ;AppContact=barrysgy@yahoo.com.cn
    ;defaultdirname是默认安装的文件 {pf}表示为c:programe files
    DefaultDirName={pf}MyCompanyInnoExample
    ;DefaultGroupName是默认组的名字(开始菜单里面的名字)
    ;后面用{group}引用 设置开始菜单里面文件夹名文件名
    DefaultGroupName=MyCompanyInnoExample
    ;outputbasefilename是安装文件的文件名 扩展名自动为.exe
    OutputBaseFilename=InnoExample_setup
    ;compression是压缩算法 lzma2是lzma的改进版, 是7-zip的算法 如果不指定算法 默认用lzma2/max
    Compression=lzma2
    ;安装的图标
    SetupIconFile={app}pic.ico
    ;安装文件鼠标放上去时显示的版本号(应该是指安装版本)
    VersionInfoVersion=1.0.0.0
    ;公司名
    VersionInfoCompany=mycompany
    ;版本信息描述
    VersionInfoDescription=example Setup
    ;右击安装文件->属性->版本->产品版本 所显示的版本号(指里面软件版本吧)
    VersionInfoTextVersion=1, 0, 0, 0
    ;安装时左侧的图 只能用bmp格式的位图 jpg矢量图不行  164x314   不是这么大小的, 会缩放拉伸
    WizardImageFile={app}dog.bmp
    
    ;下面这个componets是选择安装(如果不用选择安装,可以不要)
    ;先这边声明, 后面在[Files]里面, 加个componets:名字 就能设置他在这个组件里面了
    [components]
    ;name随便取了, 到下面关键字componets后面再引用
    ;types可以填写full compact custom
    ;flags是标记 fixed是安装时必选
    Name: main; Description:"主程序(必选)"; Types:full compact custom; Flags: fixed
    Name: help; Description:"帮助文件";  Types: full
    Name: "helpenglish"; Description: "English"; Types: full
    Name: "helpchinese"; Description: "简体中文"; Types: full
    
    ;用户定制任务
    [Tasks]
    Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
    Name: "quicklaunchicon"; Description: "{cm:CreateQuickLaunchIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
    ;选择了组件才会出现的定制任务
    ;Name: "Tasks_3" ; Description:"用户自定义任务";Components: helpenglish; Flags: unchecked
    
    [files]
    ;source表示源 destdir表示安装目的,
    ;flages是个多选可填的ignoreversion就是不查看目的路径的版本号, 全部替换.
    ;flages里面可以控制如果版本号比当前高是否替换, 或卸载时 有些mfc共享dll是否删除等等
    Source: "{app}cmd.exe"; DestDir: "{app}"; Flags: ignoreversion
    Source: "{app}配置.ini"; DestDir: "{app}"; Flags: ignoreversion
    ;Components是设置安装时属于哪个组件 如果前面没选就不会安装了
    Source: "{app}英文帮助.txt"; DestDir: "{app}"; Flags: ignoreversion; components:helpenglish
    Source: "{app}中文帮助.txt"; DestDir: "{app}"; Flags: ignoreversion; components:helpchinese
    ;isreadme可以用来安装完再设置
    ;Source: "{app}
    eadme.txt"; DestDir: "{app}"; Flags: ignoreversion isreadme;
    Source: "{app}
    eadme.txt"; DestDir: "{app}"; Flags: ignoreversion
    ;封装整目录及子目录里面的文件
    ;Source: "{app}*.*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs;
    
    ;run在安装结束前运行
    [Run]
    ;postinstall 是显示一个checkbox, shellexec是调用shell执行, 如果不是可执行文件可以调用
    ;skipifsilent 告诉程序如果安装程序在后台运行 则跳过这个条目
    ;run时要等上一个处理结束才处理下一个, nowait才继续下一个
    Filename: "{app}
    eadme.txt"; Description: "查看自述文件"; Flags: postinstall shellexec skipifsilent
    Filename: "{app}cmd.exe"; Description: "运行应用程序"; Flags: postinstall nowait skipifsilent unchecked
    ;Filename: "http://www.cnblogs.com"; Description: "访问cnblogs"; Flags: postinstall shellexec skipifsilent
    
    ;在安装目录下面新建一个文件夹可以用来放数据什么的
    ;[dirs]
    ;Name: "{app}data"
    
    ;icon是设置快捷方式的 包括桌面, 开始菜单, 快速启动栏
    [Icons]
    ;name是快捷方式名字, iconfilename可以是ico或exe或dll, Commnet是鼠标放上去时的提示
    Name: "{group}打开cmd"; Filename: "{app}cmd.exe"; Comment:"我的快捷方式"
    Name: "{group}打配置"; Filename: "{app}配置.ini";
    Name: "{group}{cm:UninstallProgram, InnoExample}"; Filename: "{uninstallexe}";
    ;WorkingDir是目标起始位置
    Name: "{userdesktop}打开cmd"; Filename: "{app}cmd.exe"; WorkingDir: "{app}"; Tasks: quicklaunchicon
    ;这是调用custommessages的
    Name: "{group}{cm:NameAndVersion, 我的, 是吗?}"; Filename: "{app}cmd.exe";
    ;只有选择了任务才会执行
    Name: "{userappdata}MicrosoftInternet ExplorerQuick LaunchMyCmd"; Filename: "{app}cmd.exe"; Tasks: quicklaunchicon
    
    ;语言选择
    ;[languages]
    ;Name: "cn"; MessagesFile: "compiler:Default.isl"
    ;Name: "en"; MessagesFile: "compiler:LanguagesEnglish.isl"
     
    ;用户自定消息(字符串) 用时可以用{cm:名字, 第一个参数, 第二数...}
    ;%1与后面空格到调用时也会显示为空格的
    [CustomMessages]
    ;如果上面定义了语言中文为cn 英文为en 自己定义消息时可以加个言前缀
    ;cn.NameAndVersion=%1 版本 %2
    ;en.NameAndVersion=%1 copyright %2
    NameAndVersion=%1 版本 %2
    AdditionalIcons=附加快捷方式:
    CreateDesktopIcon=创建桌面快捷方式(&D)
    CreateQuickLaunchIcon=创建快速运行栏快捷方式(&Q)
    ProgramOnTheWeb=%1 网站
    UninstallProgram=卸载 %1
    LaunchProgram=运行 %1
    AssocFileExtension=将 %2 文件扩展名与 %1 建立关联(&A)
    AssocingFileExtension=正在将 %2 文件扩展名与 %1 建立关联...
     
    下载inno setup例子
    inno setup汉化 5.31
    Inno Setup Unpacker 网上找, 可以解压inno setup安装包

    3、补充配置:


    inno 默认配置 外 添加 功能的配置:

    1、安装时写入注册表:https://www.cnblogs.com/wainiwann/p/10724696.html

    [registry]
    ;本段处理程序在注册表中的键值
    Root:HKCR64;Subkey:party;ValueType: string;ValueData:"party";Flags: uninsdeletevalue
    Root:HKCR64;Subkey:party;ValueType: string; ValueName:URL Protocol;ValueData:{app}electron-vue.exe;Flags: uninsdeletevalue
    Root:HKCR64;Subkey:partyshellopencommand;ValueType: string;ValueData:"""{app}electron-vue.exe"" ""%1""";Flags: uninsdeletevalue

    2、先卸载 再 安装:https://www.cnblogs.com/liujx2019/p/10516255.html

    3、

     
  • 相关阅读:
    SQL里面的函数应用
    Split的小用法
    堆栈和堆问题
    break,continue,goto,Return几个方法
    接口笔记
    抽象类
    虚方法
    将博客搬至CSDN
    运行数据区
    美团-走迷宫
  • 原文地址:https://www.cnblogs.com/wfblog/p/14142955.html
Copyright © 2011-2022 走看看