Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/bajins/nsis_setupskin
NSIS打包工具,基于XML可自定义UI
https://github.com/bajins/nsis_setupskin
nsis nsis-completions nsis-developers nsis-ide nsis-installer nsis-packaging nsis-plugin nsis-setupskin package-manager packages packaging packagist packer
Last synced: 2 days ago
JSON representation
NSIS打包工具,基于XML可自定义UI
- Host: GitHub
- URL: https://github.com/bajins/nsis_setupskin
- Owner: bajins
- Created: 2019-05-11T18:01:32.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2020-10-17T12:32:42.000Z (about 4 years ago)
- Last Synced: 2023-03-09T05:11:06.406Z (over 1 year ago)
- Topics: nsis, nsis-completions, nsis-developers, nsis-ide, nsis-installer, nsis-packaging, nsis-plugin, nsis-setupskin, package-manager, packages, packaging, packagist, packer
- Language: NSIS
- Homepage:
- Size: 225 MB
- Stars: 95
- Watchers: 4
- Forks: 31
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# NSIS_SetupSkin
NSIS打包工具,基于XML可自定义UI,通过项目[NSIS-UI](https://github.com/hilanmiao/NSIS-UI)找到[nsNiuniuSkin](http://www.ggniu.cn/download.htm)修改而来
> 该安装包界面控件是一个可集成于NSIS的插件,采用Duilib开发,在使用时,安装包制作者只需要做如下两件事情:
>> 1. 通过配置Duilib的资源,设计好界面显示的元素>> 2. 在NSIS的脚本中,通过NSIS脚本调用nsNiuniuSkin.dll的相关接口,集成UI及安装包的业务功能
> 在控件的资源中,采用的是通过TAB控件来实现不同阶段的安装界面,比如:选择路径、许可协议、安装进度、完成、卸载等,在实际使用中,通过NSIS脚本来设置当前需要显示的TAB页,即可完美的呈现出需要的界面UI了。
* [使用方法](/使用方法.md)
* [api](/api.md)**[更多打包工具](https://www.bajins.com/Other/Windows%E8%BD%AF%E4%BB%B6.html#%E7%A8%8B%E5%BA%8F%E6%89%93%E5%8C%85)**
**关于nsNiuniuSkin License**
* [http://www.ggniu.cn/articles/nsniuniuskin.html](http://www.ggniu.cn/articles/nsniuniuskin.html)
* [http://www.leeqia.com/nsniuniuskin/download](http://www.leeqia.com/nsniuniuskin/download)> nsNiuniuSkin是目前国内最专业的安装包UI控件,与NSIS完美融合。同时它也是一个完全免费的安装包UI控件,无任何的使用限制。我们的目标是让稍微有一点NSIS基础的人在一天内完成一个安装包制作。
**下载软件目录包:**
* [https://gd.bajins.com/PacketTool/software-pkg/](https://gd.bajins.com/PacketTool/software-pkg/)
* [https://od.bajins.com](https://od.bajins.com)## NSIS
* [https://sourceforge.net/projects/nsis](https://sourceforge.net/projects/nsis)
* [https://nsis.sourceforge.io/Category:Plugins](https://nsis.sourceforge.io/Category:Plugins)
* [https://sourceforge.net/projects/hmne](https://sourceforge.net/projects/hmne)
* [http://hmne.sourceforge.net](http://hmne.sourceforge.net)## 修改如下
- 1、修改目录结构,使项目更加规范:
- 对图片文件统一归纳
- 对编译bat文件针对每个程序目录放在该目录下- 2、修改函数调用,使项目更加规范,例如:
> ui.nsh 73-76行
- 3、修改函数中代码块语句错误的bug:
> ui.nsh 第70行
- 4、UI中白色背景时白色按钮不显示修改为黑色按钮可显示:
> install.xml 24-32行
- 5、bat中删除文件时先判断是否存在
- 6、bat中遍历源程序文件夹时先判断是否为空:
> makensiscode.bat 第45行
- 7、产品信息使用变量,避免输入多次可能输错:
> songliwu.nsi 6-10行
- 8、[修改卸载时的提示语中产品名称自动使用变量值](https://github.com/woytu/NSIS_SetupSkin/commit/eeb250b12f9af7851d79d69d8f68608d2e858d6a)
- 9、[所需空间大小使用函数计算FilesToInstall文件夹大小,不再需要手动输入配置](https://github.com/woytu/NSIS_SetupSkin/commit/607abd9502800aac91ba15bb22b0f591a88c5ca0)
## 目录结构
```
.
│ 7z.dll 7z压缩dll
│ 7z.exe 7z压缩主程序
│ makeapp.bat 压缩FilesToInstall文件夹脚本
│ makensiscode.bat 不压缩时遍历FilesToInstall文件夹生成编译需要的app.nsh文件
│ makeskinzip.bat 压缩SetupScripts/*/skin文件夹
│
├─FilesToInstall 源程序文件夹
├─NSIS NSIS主程序文件夹
├─OriginPlugin 插件
└─SetupScripts 项目UI配置目录
│ commonfunc.nsh 公共函数
├─nim 无复选框UI示例
│ │ build-nim-nozip.bat 不带压缩构建脚本
│ │ build-nim.bat 带压缩构建脚本
│ │ licence.rtf 产品许可文件
│ │ license.txt
│ │ logo.ico 产品logo图标
│ │ nim.nsi 安装包产品信息定义,引用了ui.nsh
│ │ ui.nsh UI函数
│ │ uninst.ico 卸载图标
│ │
│ └─skin UI配置
│ │ configpage.xml 配置页XML
│ │ default.xml 全局XML
│ │ finishpage.xml 安装完成页XML
│ │ install.xml 安装首页XML
│ │ installingpage.xml 安装进行页XML
│ │ licensepage.xml 产品许可页XML
│ │ msgBox.xml 提示消息页XML
│ │ uninstallfinishpage.xml 卸载完成页XML
│ │ uninstallingpage.xml 卸载进行页XML
│ │ uninstallpage.xml 卸载首页XML
│ │
│ ├─form 公共文件,比如公用图片
│ └─public 独立部件文件
│ ├─bk
│ ├─button
│ ├─caption
│ ├─checkbox
│ ├─edit
│ └─vsrcollbar
│
└─songliwu 有复选框UI示例
│ build-songliwu-nozip.bat 不带压缩构建脚本
│ build-songliwu.bat 带压缩构建脚本
│ license.txt 产品许可文件
│ logo.ico 产品logo图标
│ songliwu.nsi 安装包产品信息定义,引用了ui.nsh
│ ui.nsh UI函数
│ uninst.ico 卸载图标
│
└─skin UI配置
│ configpage.xml 配置页XML
│ default.xml 全局XML
│ finishpage.xml 安装完成页XML
│ install.xml 安装首页XML
│ installingpage.xml 安装进行页XML
│ licensepage.xml 产品许可页XML
│ msgBox.xml 提示消息页XML
│ msgBox2.xml
│ uninstallfinishpage.xml 卸载完成页XML
│ uninstallingpage.xml 卸载进行页XML
│ uninstallpage.xml 卸载首页XML
│
└─form 公共文件,比如公用图片
```## 图片示例
![](/images/打包好的程序信息.png)
![](/images/网易云音乐示例.png)
![](/images/网易云音乐许可协议页面.png)
![](/images/有复选框UI.png)
![](/images/有复选框UI许可协议页面.png)