前言

项目开发完成之后,需要程序打包发行,本文使用Inno Setup工具制作安装软件包。

系统环境

系统:win7_x64

工具:Inno Setup Complier

实现步骤

1.下载安装Inno Setup打包工具;

2.使用Inno Setup工具打包应用程序;

3.脚本程序;

实现过程

1.下载安装Inno Setup打包工具

1)度娘;

2)官网

2.使用Inno Setup工具打包应用程序

1)打开Inno Setup Complier,新建一个脚本向导程序;

2)点击下一步,在应用程序信息中输入产品的名称、版本号、发行单位、公司网址等,这些信息会自动在脚本中生成;

3)点击下一步,自定义打包文件的的输出地址以及输出文件夹的名称;

4)点击下一步,选择应用程序主要的可执行文件,添加其它必需用到的文件或者文件夹;

注意:整个安装包需要包含的文件必须全部包含在内;

5)点击下一步,输入应用程序在开始菜单中显示的名字;

6)下一步,选择安装时需要显示的信息、安装语言、安装名称等;

  

7)下一步,选择编译程序输出文件夹、文件名称、ICON文件及安装密码;

注意:第一个选项表示的是安装包*.exe输出的目录;

8)下一步,打包完成;

  

3.脚本程序

; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES! #define MyAppName "红牌检测系统"
#define MyAppVersion "2.5"
#define MyAppPublisher "SHIOTC, Inc."
#define MyAppURL "http://www.shiotc.com/"
#define MyAppExeName "redplate_qt.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={{D21B4F6B-401E-4575-B6E1-612A9CA50D58}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
;AppVerName={#MyAppName} {#MyAppVersion}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName=D:/redplate_detection_v2.
DefaultGroupName=redplate_detection_v2.
OutputDir=E:\carriage_recognition\redplate_detection\qt\redplate_qt_svm2\x64\Release
OutputBaseFilename=redplate_detection_2.5
;SetupIconFile=E:\carriage_recognition\redplate_detection\qt\redplate_qt_svm2\x64\Release\ICON.ico
Password=
Compression=lzma
SolidCompression=yes [Languages]
Name: "english"; MessagesFile: "compiler:Default.isl" [Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked [Files]
Source: "E:\carriage_recognition\redplate_detection\qt\redplate_qt_svm2\x64\Release\redplate_qt.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "E:\carriage_recognition\redplate_detection\qt\redplate_qt_svm2\x64\Release\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
; NOTE: Don't use "Flags: ignoreversion" on any shared system files [Icons]
Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon [Run]
Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent

可以直接保存应用程序,这样再次打包可以直接运行打包程序进行;另外,运行过程中出现错误,可以直接在脚本中进行修改;

问题

1.使用自定义的图标,脚本语句如下,出现下图所示的错误,将*.png文件更改为*.ico文件,仍然出错,可能需要使用ico文件生成工具生成*.ico文件;

SetupIconFile=E:\carriage_recognition\redplate_detection\qt\redplate_qt_svm2\x64\Release\ICON.ico 

参考

1.Inno打包教程

2.CSDN大神博客

使用Inno Setup Compiler制作安装软件包的更多相关文章

  1. 如何使用Inno Setup Compiler制作安装软件包

    工具/原料   Inno Setup Compiler汉化版软件 方法/步骤     启动Inno Setup Compiler汉化版软件.   选择创建新的空白脚本文件,按确定.   然后按下一步. ...

  2. Inno Setup Compiler 中文使用教程

    一.概要 该文章主要解决,Inno Setup Compiler工具的使用问题. 如有什么建议欢迎提出,本人及时修改.[如有任何疑惑可以加Q群:580749909] 二.步骤 (1)下载地址:http ...

  3. [Tool]Inno Setup创建软件安装程序。

    这篇博客将介绍如何使用Inno Setup创建一个软件安装程序. Inno Setup官网:http://www.jrsoftware.org/isinfo.php. 可以下载到最新的Inno Set ...

  4. Inno Setup 系列之安装、卸载前检测进程运行情况并关闭相应进程

    需求 最近用 Inno Setup 做一个exe,可是在安装之前要停止正在运行的相应进程或者在卸载之前要停止正在运行的相应进程,可是发现它自身的方法不能满足要求,最后经过度娘的耐心帮助下终于在网上找到 ...

  5. Inno setup中定制安装路径

    我的程序修改了安装界面,所以我的界面中提供了更改安装路径的方法. 用户修改后的路径会被传回inno setup脚本,脚本中需要做的事情如下: 1,写一个函数,来返回新的安装路径,如: function ...

  6. Inno Setup 系列之安装、卸载时调用bat

    需求 想在安装的时候调用install.bat,在卸载的时候调用uninstall.bat 解决 可以这样写 Inno Setup 的脚本: [Setup] ; NOTE: The value of ...

  7. Inno Setup添加中文安装语言文件

    如果你不添加中文安装语言文件,你编译生成的安装包的语言是不会有中文. 一,打开软件安装目录下的Languages文件夹下,有如下好多文件,可是就是没有Chianese.isl. 好了,你只需要随便拷贝 ...

  8. Inno Setup 检测已安装的.NET Framework 版本

    翻译自:http://kynosarges.org/DotNetVersion.html 由 Jordan Russell 写的 Inno Setup 是一个伟大的安装脚本程序,但缺乏一个内置的函数来 ...

  9. Inno Setup命令行安装卸载参数

    安装命令行参数安装程序接受可选的命令行参数.这些对于系统管理员以及其它程序调用安装程序时有用./SP- 在安装开始时禁用“这将安装... 你想继续吗?”的提示,当然,如果 [Setup] 段的指令 D ...

随机推荐

  1. 【转】VMware网络连接模式—桥接、NAT以及仅主机模式的详细介绍和区别

    ☞ 本文主要介绍软件『VMware Workstation(虚拟机)』的相关内容:VMware网络连接模式—桥接.NAT以及仅主机模式的详细介绍和区别. 其下列版本/分支可以参考本文: 全部版本/分支 ...

  2. XML_CPP_资料_libxml2库函数详解

    http://blog.csdn.net/hanchaoman/article/details/42557195 许多事物符合80/20法则,libxml中也是20%的函数提供了80%的功能.下面的列 ...

  3. js 事件相关 事件处理 封装 事件封装 DOM 0 2 3 级事件

    1.绑定 function(element, type, handler){        if (element.addEventListener) {            element.add ...

  4. 2018年全国多校算法寒假训练营练习比赛(第一场)G 圆圈

    https://www.nowcoder.com/acm/contest/67/G 思路: 分形. 记录中间左边点的坐标,然后推出另外3个点的坐标,递归到最简单的情况. 代码: #include< ...

  5. indexedDB入门

    localforage localStorage局限性:存储容量限制,仅支持字符串,如果是存对象还需要将使用JSON.stringify和JSON.parse方法互相转换:读取都是同步的.大多数情况o ...

  6. LINQ 系列

    C#图解教程 第十九章 LINQ   LINQ 什么是LINQLINQ提供程序 匿名类型 方法语法和查询语法查询变量查询表达式的结构 from子句join子句什么是联结查询主体中的from…let…w ...

  7. External RNA Controls Consortium (ERCC)

    ERCC是啥? 外部RNA控制联盟,就是一套RNA-seq,基因表达检测过程中的控制系统,使得结果具有可重复性. RNA Spike-in Controls for Gene Expression W ...

  8. 20170503xlVBA房地产数据分类连接

    Sub NextSeven_CodeFrame4() Application.ScreenUpdating = False Application.DisplayAlerts = False Appl ...

  9. Session问题-一个部门A登录后未注销另一个部门B再登录,以B的身份操作A的成员

    当管理员A登录后,打开某个管理界面.在A和B权限菜单相同的情况下,管理员B新开页面登录,session变为B的,然后切换到A打开的界面,不刷新的情况下可以操作A的数据. 解决方案:当浏览器登录后,即存 ...

  10. Number Clicker CodeForces - 995E (中途相遇)

    链接 大意: 给定模数$p$, 假设当前在$x$, 则可以走到$x+1$, $x+p-1$, $x^{p-2}$ (mod p), 求任意一条从u到v不超过200步的路径 官方题解给了两个做法, 一个 ...