ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

windows 安装打包

2021-05-07 16:01:38  阅读:247  来源: 互联网

标签:脚本 exe windows 安装包 NSIS Step Installer 安装 打包


最近开发的软件终于发布了一个正式的版本,之前一直都是用压缩包的方式发布,感觉有点low,而且要手动生成快捷方式或者注册dll,都要手动搞,有点麻烦,所以想尝试使用打包软件,做一个相对好看且实用的安装包,一次性解决所有问题。

我尝试几个打包软件,大概分为两类:

直接通过打包软件本身,只要调整相应的设置,最终能打包成exe。比如说Advanced Installer、install shield和一些国产的软件(没去详细研究)
通过简单的向导调整响应的设置,生成脚本,最终通过脚本的编译,生成exe安装包
我主要是研究了一下Advanced Installer,Inno Step, NSIS Step三个不同的打包软件,最终决定使用NSIS Step。

首先,这三个软件都能实现打包,并且生成快捷方式和注册dll(废话,这种功能都是标配),但是Advanced Installer和Inno Step有点小瑕疵。

先说说Advanced Installer和Inno Step的小瑕疵吧。

  1. Advanced Installer
    Advanced Installer和Install shield比较类似。但是貌似,官方15.7的版本是没有中文界面的,但是创建项目的时候可以选择中文来开始向导。网上能搜到的中文版,都是破解+汉化,不是很好用。我不知道破解版是不是有bug,当我在项目中使用中文字符的时候,最终生成的exe安装包可以正常安装,但是无法卸载,会提示缺少什么组件,导致卸载失败。而且卸载必须要到控制面板里去找,没有自动在根目录下生成一个卸载程序(可能有设置,没找到)。

所以,收费的软件,破解版能不用就不用,因为出了问题,你都不知道是软件本身的问题,还是破解的问题,最终还是给自己添麻烦。

  1. Inno Step
    和NSIS很类似,都是通过脚本编译成exe。但是语言包是个问题,官方5.6.1的版本,是没有自带中文语言包的,需要手动添加,但是添加后,生成的exe中,中文字符还是乱码。我简单尝试了一下,就放弃了。

最终这些小瑕疵导致我没有再去深入了解Advanced Installer和Inno Step,最终选择NSIS。

NSIS
一.下载NSIS(Nullsoft Scriptable Install System)

NSIS 是通过它的脚本语言来描述安装程序的行为和逻辑的,是一个开源的Windows 系统下安装程序制作程序
直接百度或者Google就有了,我用的是3.04版本。

刚开始测试NSIS的时候,有点懵,就两个功能,一个直接写脚本,另一个是把压缩包编译成exe。如下图:

我当时就在想,什么鬼,安装包是用脚本写出来的,这是要我重新学一门语言吗?

还有这个把压缩包编译成exe,压缩包本来就有这个功能吧,搞笑吧。

后来,在网上看了一下其他人的NSIS使用,才知道,这是真正高手使用的,初学者还要下载另外一个程序,可以用向导的方式,生成脚本,再修改脚本就好。

二.下载HM NIS Edit 2.0.3

下载后,直接打开就能用,悄悄告诉你,写这个程序的人肯定很牛逼,因为2.0.3发布的时间是03/28/2005。十几年过去,这个程序,还可以完美运行,很吊。

编辑器默认是根据系统语言选择界面语言,所以一打开就是中文界面,很厉害。

首先,通过向导,完成一个简单安装包制作过程,后面再说高级一些的功能。

1.新建向导

2.后面就是填写相关配置,不说废话,直接图片

3.最后保存脚本,你就能看到最终由向导生成的脚本了。脚本里面包含了所有,你刚才做的配置,然后在这里继续微调,做最后的准备。

然后编译,运行

到这里,你的第一个安装包,编译后,就可以在输出路径找到安装包。

一些常见的问题:
1.无法编译,报错:

因为NSIS complier和NIS editor是两个程序,分开装的,如果不是安装在同一个路径下,eidtor找不到complier就会报错。只要装在同一个路径下,就没问题,如图:

但是,如果就是在不同的路径,也关系,editor中可以设置compiler的路径,如图:

重新修改编译器的路径即可。

高级功能(部分):
我之前提到过,有些安装包需要的功能,在功能向导中,是没有提供的,这就需要我们来修改脚本了。当然,对于我自己的项目而言,我只是探索了我所需要的功能。

$INSTDIR是程序的最终安装目录

1.创建目录快捷方式

Section “客户端” SEC01




CreateShortCut “KaTeX parse error: Undefined control sequence: \固 at position 8: DESKTOP\̲固̲定扫描器图片.lnk" "INSTDIR\server\phpweb\Synchronization\fsb\images”
SectionEnd
或者防盗Section -AdditionalIcons中,都一样,注意的是,要放在最后,首先你要有这个文件夹,才能创建快捷

2.安装时,自动注册DLL

位置也是跟上面以一样

RegDLL “$INSTDIR\client\lib\xxx.dll”

3.卸载时,自动卸载DLL

Section Uninstall




UnRegDLL “$INSTDIR\client\lib\xxx.dll”
SectionEnd
4.注册表注册信息(没怎么用到),就是用了默认的注册信息

5.普通创建快捷

CreateShortCut “KaTeX parse error: Undefined control sequence: \客 at position 8: DESKTOP\̲客̲户端.lnk" "INSTDIR\client\XXX.exe”

6.删除文件

我测试的时候,发现部分文件夹没有删除掉,原因是自动生成的脚本,有些删除代码没有自动生成,所以要手动写

Delete “$INSTDIR\client\lib”

例如,如果【安装目录\client】中的lib文件夹没有删除掉,那么就在Section Uninstall,中最后的位置,添加上面的语句,就可以删除了。

总结
NSIS功能非常强大,可以实现你见过的大部分安装包的界面样式和功能,你可以在

D:\Program Files (x86)\NSIS\Examples
我是装在D盘的,Examples里面有各种各样的安装包。你可以参考脚本,实现自己想要的安装包。

其中有什么轮播图啊,背景动画啊,背景音乐啊,各种花里胡哨的东西,挺有意思的。

到此为止,这次尝试NSIS做安装包,就结束了,希望这篇文章能给大家提供一些帮助。
————————————————
版权声明:本文为CSDN博主「故长楚」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/guchangchu/article/details/88427735

标签:脚本,exe,windows,安装包,NSIS,Step,Installer,安装,打包
来源: https://blog.csdn.net/chengseasee/article/details/116494974

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有