分享一个自用的 Inno Setup 软件打包脚本
此脚本支持打包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 软件打包脚本的更多相关文章
- [InnoSetup]Inno Setup软件打包脚本
脚本由 Inno Setup 脚本向导 生成! ; 有关创建 Inno Setup 脚本文件的详细资料请查阅帮助文档! #define MyAppName "SFT期货交易系统&quo ...
- inno setup 软件打包
2017-05-26 软件开发完毕以后,要进行打包发布,有几款打包用的软件很常见:innosetup,nullsoft,installshield.本人今天终于把自己独立开发的呈现软件打了包.第一个版 ...
- 分享一个简单易用的软件定时器模块(MultiTimer)——基于keil+stm32f103zet+hal库(裸机实现)
公众号上看到一个比较好的一个github项目:https://github.com/0x1abin/MultiTimer 今天看了看,简单的,就移植了- 且看文档的说明, ============== ...
- inno setup教程解释脚本
inno setup教程解释脚本 2007-04-08 21:31:36| 分类: 科技-> Inno Setu | 标签:inno |举报 |字号 订阅 下载LOFTER客户端 ...
- Inno Setup的常用脚本
Inno Setup的常用脚本 分类: VC++神奇理论 2012-12-06 10:07 3234人阅读 评论(2) 收藏 举报 安装不同的目录: [Files] Source: "我的程 ...
- Inno Setup 5打包exe遇到的坑,做一个学习记录
; 脚本由 Inno Setup 脚本向导 生成!; 有关创建 Inno Setup 脚本文件的详细资料请查阅帮助文档! #define MyAppName "人员管理系统"#de ...
- Inno setup 简单打包教程
转自:http://blog.csdn.net/ruifangcui7758/article/details/6662646 前段时间关注了VC6.0自带的Installshield打包的使用方法,感 ...
- Inno Setup 软件封装
例子: ; 脚本用 Inno Setup 脚本向导 生成. ; 查阅文档获取创建 INNO SETUP 脚本文件的详细资料! #define MyAppName "隧道照明系统客户端程序&q ...
- 一个简单的inno setup模板
一.模板代码 基本功能包括多路径安装.多语言.自定义图标. [Setup] ShowLanguageDialog=yes AppCopyright=Copyright Reserved(C) , 36 ...
随机推荐
- 【.Net】文件并发(日志处理)--队列--Redis+Log4Net
多线程操作同一个文件时会出现并发问题.解决的一个办法就是给文件加锁(lock),但是这样的话,一个线程操作文件时,其它的都得等待,这样的话性能非常差.另外一个解决方案,就是先将数据放在队列中,然后开启 ...
- SQL Server 2005为数据库设置用户名和密码的方法
1.打开SQL Server Manager管理器,在左面找到 ‘安全性’ 单击右键 选择‘新建”->“登录”, 如下图 2.弹出对话框,在登录名中输入你的登录号,选择'SQLSERVER身份验 ...
- STM32学习笔记之一(初窥STM32)
怎么做好学习笔记? 答:自我感知-->学习知识-->归纳总结-->自我升华(真正属于自己的知识是,抛开书本,运用时,你还能记得的思想) 自我感知--看到知识概念,先自我感觉那应该是个 ...
- php学习网址
后面会陆续维护此页. 1. php编程 此博客是网站www.beilei123.cn镜像,转载请注明出处.
- XML字符串转化json
public static String XMLTOJSON(String XMLContent,String tag) { XMLSerializer xmlSerializer = new XM ...
- Arduino周边模块:传感器部件(温敏、光敏、湿敏)
Arduino周边模块:传感器部件(温敏.光敏.湿敏) Arduino周边模块:传感器部件(温敏.光敏.湿敏) Arduino的模数转换 对于Arduino来说,它只认识数字量,模拟量对其来说就是一门 ...
- Android_自定义进度条
转载:http://blog.csdn.net/lmj623565791/article/details/43371299 ,本文出自:[张鸿洋的博客] 1.概述 最近需要用进度条,秉着不重复造轮子的 ...
- 学习head first python一书用到的程序(安卓开发/GAE)
学习head first python一书用到的程序资料等文件 包括源码.电子书.一些安卓开发.gae开发程序文件,一些程序比较老,都不好找了(找了很久才收集齐),所以发上来,留给需要的人吧. 包括: ...
- 如何使用getopt()函数解析参数
最近在写程序的过程中,把一部分时间都花费在程序对参数的处理上.今天听了学长说到getopt函数,才发现原来c里面还有一个专门解决参数处理的函数,查询了相关资料,这里简单总结一下. 使用int main ...
- WampServer下如何实现多域名配置
原文:WampServer下如何实现多域名配置 之前在学习跨域的时候,我写过一篇叫做WampServer下使用多端口访问的文章,默认的 localhost 采用的是 80 端口,能使用多端口访问的核心 ...