NSIS制作安装包笔记(一):NSIS介绍、使用NSIS默认向导脚本制作Windows安装包
前言
做产品时,定制的自定义安装界面常有的,使用NSIS + Qt可以完美的定制基于QT的安装界面,先从纯NSIS开始,制作常规的安装包。
应用程序的发布方式
应用程序发布的时候,具备以下两种方式:
- 静态编译:把相关联的库一并引入可执行程序,虽然发布简单,编译出来只有一个exe文件。(特别注意:编译时,其依赖的库也需要使用静态包)。
- 动态编译:把相关联的库以dll的形式提供(linux下是.so)引入,不被包含进可执行程序,发布不方便,但可执行程序较小。
预先准备工具
Qt应用需要先打包,使用windeployqt,建议打包后到无环境的对应系统的虚拟机上尝试。
具体直接略,不会的请百度。

Windows下安装与卸载
安装
在windows下,很多程序运行起来,会有一系列安装,勾选用户协议,自定义的安装界面,安装之后对应的路径放置应用的程序文件,创建开始菜单文件夹,放置桌面快捷方式,任务栏也可能有固定图标,
以上情况,安装包就需要单独定制了,如Qt的安装包,其他产品的安装包:

以上Qt的界面确实不太漂亮,漂亮的界面是需要美工做主题的,怀疑Qt公司没有ui设计参与。
还有很多其他安装界面:

卸载
卸载界面也可以定制,当然会增加一定的工作量,如下图:

NSIS软件
Nsis其实是使用一种脚本语言了,学习成本肯定是不低的。
采用NSIS + QT 制作安装程序实际上就是使用QT制作安装程序,而NSIS仅仅将制作的安装程序打包成一个exe。
下载
安装




NSIS使用向导生成安装包
可勾选用户协议,可选择安装路径,并且在开始菜单和桌面创建图标。
步骤一:启用应用,打开脚本编辑器
一般需要用到的就是“编译NSI脚本”和“脚本编辑器(VNISEdit)”。


步骤二:新建向导脚本(自带内置)
使用向导基本进行建立,可满足常规的一些应用安装过程:










生成了脚本:

保存为脚本:

至此,可以关闭脚本编辑器了(注意:最好留着,后边边调试脚本边编译测试)。
步骤三:编译NISI脚本
切到主界面,打开NSI脚本编译器,对脚本进行编译:

加载脚本:

加载之中(copy文件等操作):

加载完成:

步骤四:测试安装程序
向导生成的安装过程:






步骤五:测试成功


步骤六:测试卸载



(注意:图标出来了,这个地方前面需要再调试,因为前面的图标没有出,读者自己调试吧,挺费时间的)。
上一篇:无
下一篇:《NSIS制作安装包笔记(二):NSIS使用NSIS+Qt界面制作安装包流程》(即将发布)
NSIS制作安装包笔记(一):NSIS介绍、使用NSIS默认向导脚本制作Windows安装包的更多相关文章
- C# Note19: Windows安装包制作实践
前言 最近在项目中需要不断更新新版本的software installer(软件安装包),于是便查阅资料,整理了下制作方法. NSIS安装包制作脚本 NSIS(Nullsoft Scriptable ...
- InterSystems Ensemble学习笔记(一) Ensemble介绍及安装
系列目录 InterSystems Ensemble学习笔记(一) Ensemble介绍及安装InterSystems Ensemble学习笔记(二) Ensemble创建镜像, 实现自动故障转移 一 ...
- Jmeter介绍以及脚本制作与调试
目录 Jmeter介绍 Jmeter安装 Jmeter主要测试组件 Jmeter元件作用域与执行顺序 Jmeter运行原理 Jmeter脚本制作 Jmeter脚本调试 Jmeter介绍 Jmeter ...
- HTML+CSS学习笔记(1) - Html介绍
HTML+CSS学习笔记(1) - Html介绍 1.代码初体验,制作我的第一个网页 <!DOCTYPE HTML> <html> <head> <meta ...
- cocos2d-x入门学习笔记,主要介绍cocos2d-x的基本结构,并且介绍引擎自带的示例
cocos2d-x 3.0 制作横版格斗游戏 http://philon.cn/post/cocos2d-x-3.0-zhi-zuo-heng-ban-ge-dou-you-xi http://blo ...
- 《The Linux Command Line》 读书笔记01 基本命令介绍
<The Linux Command Line> 读书笔记01 基本命令介绍 1. What is the Shell? The Shell is a program that takes ...
- 解决octave for windows安装包无法通过SourceForge下载的问题
近期SourceForge访问不了,可以通过访问SourceForge的ftp镜像ftp://sourceforge.nchc.org.tw/进行下载: ftp下载工具可以使用FileZilla,可在 ...
- Typescript 学习笔记一:介绍、安装、编译
前言 整理了一下 Typescript 的学习笔记,方便后期遗忘某个知识点的时候,快速回忆. 为了避免凌乱,用 gitbook 结合 marketdown 整理的. github地址是:ts-gitb ...
- Elasticsearch7.X 入门学习第五课笔记---- - Mapping设定介绍
原文:Elasticsearch7.X 入门学习第五课笔记---- - Mapping设定介绍 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本 ...
随机推荐
- 大数据实战-Spark实战技巧
1.连接mysql --driver-class-path mysql-connector-java-5.1.21.jar 在数据库中,SET GLOBAL binlog_format=mixed; ...
- 优秀的vue服务端渲染框架
目前国内优秀的基于vue的ssr框架有minissr,可以在服务端生成html代码,有利于搜索引擎爬取. https://www.wechatmini.com/vue/minissr 使用方法可以参考 ...
- 为什么要从 Linux 迁移到 BSD1
为什么要从 Linux 迁移到 BSD1 作为一个操作系统,GNU/Linux 已经变得一团糟了,因为项目的分散性,内核的臃肿,以及商业利益的玩弄.从 GNU/Linux 迁移到 BSD 有几个技术上 ...
- 【odoo】ref 1-6说明
(0,_ ,{'field': value}) 这将创建一个新的记录并连接它 (1,id,{'field': value}): 这是更新一个已经连接了的记录的值 ( ...
- EF Core 源码分析
最近在接触DDD+micro service来开发项目,因为EF Core太适合DDD模式需要的ORM设计,所以这篇博客是从代码角度去理解EF core的内部实现,希望大家能从其中学到一些心得体会去更 ...
- Linux Shell 统计一(行\列)数值的总和及行、列转换
(对一列数字求和) 在日常工作当中需要对文本过滤出来的数字进行求和运算,例如想统计一个MySQL分区表现在有多大 # ls -lsh AdPlateform#P#p*.ibd |grep G 2.6 ...
- python之模块与类库
什么是模块 模块是一组类,函数,方法所组成的.这些类都储存在文本文件中..py是python程序代码中的扩展名,模块可能是c或者python写的.模块的扩展名可以是.py或者是.pyc(经过编译的.p ...
- 从键盘读入学生成绩,找出最高分, 并输出学生成绩等级(Java)
从键盘读入学生成绩,找出最高分, 并输出学生成绩等级 一.题目 从键盘读入学生成绩,找出最高分,并输出学生成绩等级. 成绩>=最高分-10 等级为'A' 成绩>=最高分-20 等级为'B' ...
- 2021-2-28 Mark-Java Interview Simple
2021-2-28 Mark-Java Interview Simple 心动时,还没来得及学会勇敢. 勇敢时,我们已在时光里走散. 简介:2021-2-28日Java面试没能脱口而出或是回答得不好的 ...
- [游记]2020/CSP - S总结
2020 / C S P − S 总 结 2020/CSP - S总结 2020/CSP−S总结 这年的 C S P CSP CSP考的不是很理想,本来稳进的 C S P − J CSP-J CSP− ...