简单使用NSIS打包软件

NSIS是一个开源的打包工具.

官网:  Download - NSIS (sourceforge.io)

使用这个编译

但是不建议使用这玩意写脚本,字体太难看了.我用vscode写的脚本,用这个编译的.

 写好脚本用这个软件打开, 然后选择这个编译,如果语法有错误 会编译不过,会提醒你哪一行不行,如果编译通过了是这样的.

文件后缀是.nsi

 vscode上有这个NSIS插件

语法就不介绍了,比较简单,记录一下我用到的

!define FIXDPRE_VERSION "1.0.1"

!define是定义全局变量的,前面是名称,后面是值

Function .onInit
SetRegView 64
ReadRegStr $0 HKLM "${PRODUCT_DIR_REGKEY}" ""
${If} $0 == ""
    MessageBox MB_OK "The vision service is not installed, install it first."
	Abort
${EndIf}
StrCpy $INSTDIR "$0\Bin\plugins"
FunctionEnd

Function .onInit这个是初始化函数,脚本运行前会执行这里面的命令.

"${PRODUCT_DIR_REGKEY}"这个是读取变量中的值

MessageBox MB_OK "The vision这个是弹窗命令,

Abort是中止.

ReadRegStr $0 HKLM "${PRODUCT_DIR_REGKEY}" ""这句话是查看注册表中是否有这个服务,我这是打包了一个插件,所以需要查看服务是否安装,如果没有安装就要中止安装插件.

Name "${PRODUCT_NAME}"

这个是安装弹框的插件名字,后面的setup是默认的.

OutFile "VisionPluginInstaller.exe"

这个是打包的名字

InstallDir $INSTDIR

这个是安装路径.默认是这个地址

这个是模块,用来指定安装什么内容的,

Section "FixedPrefixEncoding ${FIXDPRE_VERSION}"  FixedPrefixEncoding
    SetOutPath "$INSTDIR\FixedPrefixEncoding"
    File ".\x64\FixedPrefixEncoding\Release\bin\FixedPrefixEncoding.dll"
SectionEnd

"FixedPrefixEncoding ${FIXDPRE_VERSION}" 这个是下图显示可选的模块显示的字符串.  

FixedPrefixEncoding 这个是个变量,用在后面指定要不是安装这一块的.

这一块就是指定安装模块的,这里有几个上图就有几个可选择的模块.

!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
  !insertmacro MUI_DESCRIPTION_TEXT ${FixedPrefixEncoding} "FixedPrefixEncoding"
  !insertmacro MUI_DESCRIPTION_TEXT ${FixedPrefixEncodingConfig} "FixedPrefixEncodingConfig"
!insertmacro MUI_FUNCTION_DESCRIPTION_END

 基本上就是这些了.我目前用到的也就这个了.还有好多细节没说,比如lisence怎么定义,下面是一个exe.

!insertmacro MUI_PAGE_LICENSE ".\lisence.txt"

比如这就是定义授权的,在脚本路径下添加一个txt安装的时候就会显示这个文件内容.

 

!define MUI_ABORTWARNING
!define MUI_ICON ".\x64\image\a.ico"

这个是定义图标的.

; Script generated by the HM NIS Edit Script Wizard.

!define PRODUCT_NAME "Vision Plugin"
!define FIXDPRE_VERSION "1.0.1"
!define PRODUCT_PUBLISHER "AAA Limited. "
!define PRODUCT_DIR_REGKEY "Software\AAA\Vision service"
!define PRODUCT_UNINST_ROOT_KEY "HKLM"

; MUI 1.67 compatible ------
!include "MUI.nsh"
; MUI Settings
!define MUI_ABORTWARNING
!define MUI_ICON ".\x64\image\a.ico"
; Welcome page
!insertmacro MUI_PAGE_WELCOME
; License page
!insertmacro MUI_PAGE_LICENSE ".\lisence.txt"
; Components page
!insertmacro MUI_PAGE_COMPONENTS
; Directory page
!insertmacro MUI_PAGE_DIRECTORY
; Instfiles page
!insertmacro MUI_PAGE_INSTFILES
; Language files
!insertmacro MUI_LANGUAGE "English"

; MUI end ------

Function .onInit
SetRegView 64
ReadRegStr $0 HKLM "${PRODUCT_DIR_REGKEY}" ""
${If} $0 == ""
    MessageBox MB_OK "The vision service is not installed, install it first."
	Abort
${EndIf}
StrCpy $INSTDIR "$0\Bin\plugins"
FunctionEnd

Name "${PRODUCT_NAME}"
OutFile "VisionPluginInstaller.exe"
InstallDir $INSTDIR


Section "FixedPrefixEncoding ${FIXDPRE_VERSION}"  FixedPrefixEncoding
    SetOutPath "$INSTDIR\FixedPrefixEncoding"
    File ".\x64\FixedPrefixEncoding\Release\bin\FixedPrefixEncoding.dll"
SectionEnd

Section "FixedPrefixEncodingConfig" FixedPrefixEncodingConfig
    SetOutPath "$INSTDIR\FixedPrefixEncoding\config"
    File ".\x64\FixedPrefixEncoding\Release\bin\config\FixedPrefixEncodingConfig.json"
SectionEnd

; Section descriptions
!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
  !insertmacro MUI_DESCRIPTION_TEXT ${FixedPrefixEncoding} "FixedPrefixEncoding"
  !insertmacro MUI_DESCRIPTION_TEXT ${FixedPrefixEncodingConfig} "FixedPrefixEncodingConfig"
!insertmacro MUI_FUNCTION_DESCRIPTION_END

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/466094.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

探讨NLP对行业大量数据信息抽取的技术实现

在本文中,为了实现高效的信息抽取,我们采用了一个自主研发的多模态AI的大模型NLP平台。 这个平台的使用过程分为以下几个步骤: 数据收集:我们收集了与项目相关的100条数据样本,这些样本涵盖了各种商品描述&#xff0c…

一口气看完明朝276年历史

明朝是中国历史上最后一个由汉人建立的大一统封建王朝,建立于公元1368年,亡于公元1644年,国祚276年,传12世16帝。 太祖建国 太祖(1368~1398) 公元1368年,朱元璋在南京应天府建元称帝&#xff…

多行业预约小程序源码系统:单多门店一键切换 带完整的安装教程以及安装代码包

在当今数字化时代,小程序以其便捷、高效的特点,成为企业连接用户、提升服务体验的重要工具。下面,罗峰给大家分享一款多行业预约小程序源码系统,该系统支持单多门店一键切换,并附带完整的安装教程及安装代码包&#xf…

【日本語】N2考试湖北报名笔记

阅读资料 视频:JLPT报名技巧 使用浏览器调试模式快速报名; 1 报名流程 【考场选择】 1.1 春季报名:03-19 07:00:00 1.2 预习网站登录信息 1.3 登录验证码:06:55 (图片来自视频《教日语的阿飞老师 - 担心能力考抢…

QY-02-W2 无线雨量监测站 防洪防汛 大坝水库雨水情实时监测

无线雨量监测站配置: 不锈钢支架、雨量传感器、太阳能板、数据采集发送器。 产品概述 无线雨量监测站是一款无线传输数据的雨量监测设备,由不锈钢支架、ABS雨量筒、不锈钢防护箱、主机采集器、无线数据发送装置、太阳能电池板、蓄电池等构成&#xff0c…

CSS基础笔记

第一课 CSS&#xff08;层叠式样式表&#xff09;&#xff1b;样式规则由 选择器、 属性 以及 属性值 组成 内联样式表、内嵌样式表、外部样式表 内联样式表 写在标签里 用 style 属性进行表示&#xff0c;优先级比 内嵌 和 外部 高 <h1 style"color: blue; text-…

java8:LinkedList的实现原理

概述 先来看看源码中的这一段注释&#xff0c;我们先尝试从中提取一些信息&#xff1a; Doubly-linked list implementation of the List and Deque interfaces. Implements all optional list operations, and permits all elements (including null).All of the operations …

ubuntu下摩尔线程s80配置ai绘图环境

首先我的桌面是gdm,然后安装github上的sdk&#xff0c;重启进不去桌面了 解决方法&#xff1a; 开机以后选ubuntu的高级选项&#xff0c;换旧一点的linux内核&#xff0c;然后卡在进程上&#xff0c;ctrlaltf2斤tty sudo apt remove musa 卸载完驱动就可以进系统了

Java SE 认识异常 (Java SE完结篇)

1. 异常的概念与体系结构 1.1 异常的概念 在我们的生活中,一个人如果表情痛苦,我们可能会问: 你是生病了吗? 需要我陪你去看医生吗? 程序也和人是一样的,均会发生一些"生病"的行为,比如: 数据格式不对, 数组越界,网络中断等, 我们把这种程序出现的"生病&qu…

ASO优化:App在App Store的权重影响因素

1.App的标题描述 App的标题、描述是能引导用户下载的重要部分&#xff0c;此处关键词占比的权重是最大的。比如说爱奇艺&#xff0c;最近主推的就是由任嘉伦、刑菲主演的《烈焰》。它就把主推的内容放在副标题处&#xff0c;获得很大的曝光量&#xff0c;娱乐榜直接排第一名了…

C语言学习笔记day8

一维数组冒泡排序法 1. 作用 将乱序的一维数组按照从小到大的顺序排列 2. 原理示意图 3. 代码 #include <stdio.h> #include <stdlib.h> #include <time.h>int main(void) {int a[5] {0};int len sizeof(a) / sizeof(a[0]);int i 0;int j 0;int tmp …

Vue工程化基础

一Ajax 1.1Ajax概述&#xff1a; 异步与同步 繁琐被淘汰了。 二Axios2 前后端混合开发&#xff1a; 前后端分离开发&#xff1a; YAPI 三前端开发工程化 四Vue脚手架 项目的认识 改变端口号 五Vue开发流程&#xff1a; 六Element组件 6.1快速入门 下载> npm install e…

Python数据分析-Matplotlib1

一、折线图的绘制 1.数据分析流程 2.运用Matplot绘制折线图 #encodingutf-8 import random from matplotlib import pyplot as plt #绘图工具库 from matplotlib import font_manager #解决中文显示问题 from cProfile import label #设置字体方式 my_font font_manager.Fon…

kafka集群介绍及搭建

介绍 kafka是一个高性能、低延迟、分布式的消息传递系统&#xff0c;特点在于实时处理数据。集群由多个成员节点broker组成&#xff0c;每个节点都可以独立处理消息传递和存储任务。 路由策略 发布消息由key、value组成&#xff0c;真正的消息是value&#xff0c;key是标识路…

Two Birds with One Stone

learnable mask M 辅助信息 作者未提供代码

Illustrator 2024:创意与技术的完美融合,引领矢量设计新潮流

Illustrator 2024是一款由Adobe公司倾力打造的强大矢量图形设计软件&#xff0c;以其丰富的绘图工具、卓越的设计功能和直观的操作界面&#xff0c;成为专业设计师和创意工作者的首选工具。这款软件不仅提供了画笔、铅笔、形状、路径等多种工具&#xff0c;帮助用户轻松创建各种…

Python+Appium+Pytest+Allure实战APP自动化测试!

pytest只是单独的一个单元测试框架&#xff0c;要完成app测试自动化需要把pytest和appium进行整合&#xff0c;同时利用allure完成测试报告的产出。 编写常规的线性脚本具体的步骤如下&#xff1a; 1、设计待测试APP的自动化测试用例 2、新建app测试项目 3、配置conftest.py文…

精读《架构设计之 DCI》

本期精读文章是&#xff1a;The DCI Architecture 1 引言 随着前端 ES6 ES7 的一路前行&#xff0c; 我们大前端借鉴和引进了各种其他编程语言中的概念、特性、模式; 我们可以使用函数式 Functional 编程设计&#xff0c;可以使用面向对象 OOP 的设计&#xff0c;可以使用面向…

ai写作一键生成,分享6种好用的写作软件,一定要看

在写文章时&#xff0c;我们常常会遇到灵感丧失、词句不顺的情况&#xff0c;为了解决这一问题&#xff0c;小编为大家推荐几款实用的AI写作软件&#xff0c;一同来探索一下吧&#xff01; 一、爱制作AI 爱制作AI是一款专注于写作的软件&#xff0c;强大的智能数据库让它备受…

避免内存泄漏及泄漏后的排查方法【C++】

内存泄漏 前言编码std::unique_ptr申请单个对象申请对象数组 std::shared_ptr申请单个对象申请对象数组 编码总结 前言 最近在工作中被内存泄漏疯狂折磨&#xff0c;整理一下自己的思考。 编码 最近在工作中被内存泄漏疯狂折磨&#xff0c;我真的奉劝各位&#xff0c;如果你…