此脚本支持打包mysql、安装mysql服务、安装windows服务、操作ini文件、操作注册表、高效压缩文件等功能,基本能满足常用的软件打包需求。

;定义各种常量
#define MyAppName "软件名称"
#define MyAppDirName "软件目录名称" ;下面的版本号,公司名称,网址在 控制面板->卸载应用程序 的地方可看到
#define MyAppVersion "版本号"
#define MyAppPublisher "公司名称"
#define MyAppURL "软件网址链接" #define MyAppExeName "主执行文件.exe" [Setup]
; 注: AppId的值为单独标识该应用程序。
; 不要为其他安装程序使用相同的AppId值。
; (生成新的GUID,点击 工具|在IDE中生成GUID。)
AppId={{1394783A-5D3C-48CD--E2DFBB844E42}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
AppVerName={#MyAppName}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName={pf}\{#MyAppDirName}
DefaultGroupName={#MyAppName} ;安装包文件输出目录
OutputDir=D:\Output\ ;安装包文件名
OutputBaseFilename=setup ;压缩文件
Compression=lzma
SolidCompression=yes ;以管理员权限运行
PrivilegesRequired=admin UninstallDisplayIcon={app}/{#MyAppExeName}
VersionInfoVersion=1.0.0.0 ;安装包语言
[Languages]
Name: "chinesesimp"; MessagesFile: "compiler:Default.isl" [Files]
Source: "F:\Output\源程序文件目录\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
;源程序文件目录 [Icons]
Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
Name: "{userdesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; WorkingDir: "{app}"; ;安装完成后要执行的操作
[Run]
Filename: "{app}\mysql\bin\mysqld"; Parameters: " --install mysql --defaults-file=""{app}\mysql\my.ini"""; WorkingDir: "{app}\mysql\bin"; Flags: runhidden;
;安装mysql服务
Filename: "{sys}\net"; Parameters: "start mysql"; WorkingDir: "{sys}"; Flags: runhidden;
;启动mysql服务
Filename: "{dotnet40}\installutil.exe"; Parameters: " MyService.exe"; WorkingDir: "{app}"; Flags: runhidden;
;安装windows服务
Filename: "{sys}\net"; Parameters: "start MyService"; WorkingDir: "{sys}"; Flags: runhidden;
;启动windows服务 Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent runasoriginaluser
;是否启动软件 ;卸载后执行的操作(停止、删除各种服务)
[UninstallRun]
Filename: "{sys}\net"; Parameters: "stop mysql"; WorkingDir: "{sys}"; Flags: runhidden;
Filename: "{sys}\net"; Parameters: "stop MyService"; WorkingDir: "{sys}"; Flags: runhidden;
Filename: "{app}\mysql\bin\mysqld"; Parameters: " --remove mysql"; WorkingDir: "{app}\mysql\bin"; Flags: runhidden;
Filename: "{dotnet40}\installutil.exe"; Parameters: "/u MyService.exe"; WorkingDir: "{app}"; Flags: runhidden; ;操作my.ini文件,修改basedir和datadir目录
[INI]
Filename: "{app}\mysql\my.ini"; Section: "mysqld"; Key: "basedir"; String: "{app}/mysql"
Filename: "{app}\mysql\my.ini"; Section: "mysqld"; Key: "datadir"; String: "{app}/mysql/data" ;卸载后删除目录所有文件,删除空目录
[UninstallDelete]
Type: filesandordirs; Name: "{app}\*"
Type: dirifempty; Name: "{app}" ;操作注册表
[Registry]
Root: HKLM; Subkey: "Software\SoftName"; Flags: uninsdeletekey;

分享一个自用的 Inno Setup 软件打包脚本的更多相关文章

  1. [InnoSetup]Inno Setup软件打包脚本

     脚本由 Inno Setup 脚本向导 生成! ; 有关创建 Inno Setup 脚本文件的详细资料请查阅帮助文档!   #define MyAppName "SFT期货交易系统&quo ...

  2. inno setup 软件打包

    2017-05-26 软件开发完毕以后,要进行打包发布,有几款打包用的软件很常见:innosetup,nullsoft,installshield.本人今天终于把自己独立开发的呈现软件打了包.第一个版 ...

  3. 分享一个简单易用的软件定时器模块(MultiTimer)——基于keil+stm32f103zet+hal库(裸机实现)

    公众号上看到一个比较好的一个github项目:https://github.com/0x1abin/MultiTimer 今天看了看,简单的,就移植了- 且看文档的说明, ============== ...

  4. inno setup教程解释脚本

    inno setup教程解释脚本 2007-04-08 21:31:36|  分类: 科技-> Inno Setu |  标签:inno   |举报 |字号 订阅     下载LOFTER客户端 ...

  5. Inno Setup的常用脚本

    Inno Setup的常用脚本 分类: VC++神奇理论 2012-12-06 10:07 3234人阅读 评论(2) 收藏 举报 安装不同的目录: [Files] Source: "我的程 ...

  6. Inno Setup 5打包exe遇到的坑,做一个学习记录

    ; 脚本由 Inno Setup 脚本向导 生成!; 有关创建 Inno Setup 脚本文件的详细资料请查阅帮助文档! #define MyAppName "人员管理系统"#de ...

  7. Inno setup 简单打包教程

    转自:http://blog.csdn.net/ruifangcui7758/article/details/6662646 前段时间关注了VC6.0自带的Installshield打包的使用方法,感 ...

  8. Inno Setup 软件封装

    例子: ; 脚本用 Inno Setup 脚本向导 生成. ; 查阅文档获取创建 INNO SETUP 脚本文件的详细资料! #define MyAppName "隧道照明系统客户端程序&q ...

  9. 一个简单的inno setup模板

    一.模板代码 基本功能包括多路径安装.多语言.自定义图标. [Setup] ShowLanguageDialog=yes AppCopyright=Copyright Reserved(C) , 36 ...

随机推荐

  1. [置顶] 学习鸟哥的Linux私房菜笔记(6)——过滤器、输入输出及管道

    一.过滤器 Linux中的应用工具分为三种: 交互工具 过滤器 编辑器 能够接受数据,过滤再输出的工具,称之为过滤器 对过滤器和进程,存在着输入源与输出对象 二.输入.输出.重定向 输入:过滤器的数据 ...

  2. JQuery实现 checkbox 全选、反选,子checkbox有没选去掉全选

    1. 全选的checkbox选中时,子checkbox全部选中.反之,全部不选 2.子checkbox中,只要有没有被选中的,取消全选checkbox的选中 3.子checkbox的数量和子check ...

  3. JUnit报空指针错误,控制台不报任何错误

    解决方法:1. 在测试类的beforeClass方法上加try-catch块 2. 添加main方法,里面添加beforeClass();

  4. 手机访问电脑wampServer本地环境页面

    1.  电脑需要安装好wamp,我这里用的2.0版本,下载地址   http://pan.baidu.com/s/1jG31hbS   2. 电脑需要有个wifi,我用的360wifi   3. 启动 ...

  5. ajax接收遍历处理json格式数据

    ajax在前后端的交互中应用非常广泛,通过请求后台接口接收处理json格式数据展现在前端页面. 下面我们来简单用 ajax在本地做一个接收并处理json的小例子 首先我们要新建一个叫做data的jso ...

  6. Django模板-基础知识

    上一篇中带参数的URLconf虽然可以做到传参动态显示内容,但是最终现实的内容还是硬编码到Python代码中的 def hours_ahead(request,phours): try: phours ...

  7. java接口的理解

    接口的最主要的作用是达到统一访问,就是在创建对象的时候用接口创建,[接口名] [对象名]=new [实现接口的类],这样你像用哪个类的对象就可以new哪个对象了,不需要改原来的代码,就和你的USB接口 ...

  8. jquery.validate的效验方式

    jQuery校验官网地址:http://bassistance.de/jquery-plugins/jquery-plugin-validation 原文地址:http://www.cnblogs.c ...

  9. 安装程序时出现错误代码0x80070422

    通过win10应用商店,下载应用,安装时出现错误代码0x80070422. 需要打开services.msc,将windows update服务打开.

  10. 使用kd-tree加速k-means

    0.目录 前置知识 思路介绍 详述 1 确定h的中心点 2 算法步骤 java实现 1.前置知识 本文内容基于<Accelerating exact k-means algorithms wit ...