使用inno setup 制作安装包

前面要说的话

最近几天的工作内容就是改良之前的同事做的安装包,
小朋友你是否有很多问号~~~
之前也没接触过安装包,领导给了我官网链接,让我研究,搞了3天,最终也就是在同事的基础上进行了一些简化内容,大概总结下就是两方面:

文件复制

一些文件内容需要复制到安装后的文件夹下,针对不同的组件复制对应的文件夹
旧的脚本里是一个个文件列出来,组件很多或文件很多的情况下,脚本里就是密密麻麻一片,官网的example里有个
在这里插入图片描述
通配符这么好用的东西之前竟然没被get到,反正我是用了,脚本瞬间清爽了很多,还有一个点就是,如果指定的文件夹目录下还有子文件夹,就需要再flags里添加recursesubdirs createallsubdir
造个我的例子吧:

[files]
Source: "MYFOLDER\A\*"; DestDir: "{app}\A\"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: A
Source:当前文件存放的位置
DestDir:安装后存放的位置
Components:组件名称
Flags:标识,如果文件中有子文件夹则添加recursesubdirs createallsubdirs,没有可不加

之所以这样统一改的原因主要还是这个安装包提供给客户后,希望尽可能不让客户去修改我们的安装包脚本比如说最直观的好处就是脚本简洁了,更主要的好处就是:如果针对某一个或多个已有的组件添加了文件的时候,可以直接放在对应的文件夹底下,而不用去修改脚本了

添加注册表

之前写进注册表是按官网来的,在[registry]里添加相关字段
在这里插入图片描述
由于组件太多,字段也非常多,添加会比较麻烦,所以想找个方式可以直接从注册表文件中将字段导入注册表,有问题找度娘,找到了解决方案在[run]里添加执行脚本:

Filename: {win}\regedit.exe; Parameters: /s /MYFOLDER/A/A.reg; Components: A;
Parameters:注册表存放路径
Components:组件名称

同时也遇到个问题:想要在卸载后删除注册表。如果是在脚本里添加字段的做法就是直接在flags后添加deletekey,则会在卸载时删除这个key对应的所有value
如果是执行程序的方式无法用这个操作,所以就参考了https://blog.csdn.net/woshinia/article/details/8174453这篇文章,在我的[code]里添加上了这段代码:

//删除注册表?
procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
begin
if CurUninstallStep = usUninstall then

if MsgBox('您是否要删除注册信息?', mbConfirmation, MB_YESNO) =
IDNO then//我不需要弹出这个框所以是IDNO
RegDeleteKeyIncludingSubkeys(HKEY_LOCAL_MACHINE, 'SOFTWARE\My_key');
RegDeleteKeyIncludingSubkeys(HKEY_USERS, '.DEFAULT\My_key')
end;

那么在卸载程序后会去执行这段代码,去删除我写的这两个key下的所有内容

inno setup的用后感

个人使用下来觉得很容易上手,官网也写的很清楚,就是全英文的,靠翻译软件看起来还挺快的哈哈哈哈哈哈
这是官网链接https://jrsoftware.org/isinfo.php
它其实有提供很多个example让用户能更快地上手使用并理解他的功能模块
https://jrsoftware.org/ishelp/
脚本里主要就是分了多个section,速成的话就是可以针对每个section的内容查看(https://jrsoftware.org/ishelp/

扩展
这里有个动态生成Files的例子:
https://stackoverflow.com/questions/40728147/generating-inno-setup-file-flags-programmatically
可以参考来自动生成components

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值