Nsis打包Unity Exe文件(通用)
Nsi 脚本
!include "MUI2.nsh"#使用现代UI
Unicode true #使用Unicode
!define EXENAME "exeName" #定义常量 exe名称
!define SHORTCUT "快捷方式名称" #定义桌面快捷方式的中文名称Name ${EXENAME} #安装程序的title
OutFile "${EXENAME}_Setup.exe" #安装程序的名称InstallDir "$Desktop\${EXENAME}" #默认安装路径为桌面\exe名称#使用现代UI!define MUI_ABORTWARNING !define MUI_WELCOMEFINISHPAGE_BITMAP ${NSISDIR}\Contrib\Graphics\Wizard\orange.bmp!define MUI_UNWELCOMEFINISHPAGE_BITMAP ${NSISDIR}\Contrib\Graphics\Wizard\orange-uninstall.bmp!insertmacro MUI_PAGE_WELCOME #欢迎界面!insertmacro MUI_PAGE_DIRECTORY #设置安装路径!insertmacro MUI_PAGE_INSTFILES #显示安装细节!insertmacro MUI_PAGE_FINISH #安装完成!insertmacro MUI_UNPAGE_WELCOME!insertmacro MUI_UNPAGE_CONFIRM!insertmacro MUI_UNPAGE_INSTFILES!insertmacro MUI_UNPAGE_FINISH!insertmacro MUI_LANGUAGE "SimpChinese"#安装界面为中文SectionSetOutPath $INSTDIR #安装程序生成后的位置File *.exe #打包exe文件File *.dllFile /r MonoBleedingEdgeFile /r "${EXENAME}_Data"WriteUninstaller $INSTDIR\Uninstall.exe #生成卸载程序CreateDirectory "$SMPROGRAMS\${EXENAME}" #开始程序文件夹内创建文件夹CreateShortcut "$DESKTOP\${SHORTCUT}.lnk" "$INSTDIR\${EXENAME}.exe" #桌面生成快捷方式 关联exe文件CreateShortcut "$SMPROGRAMS\${EXENAME}\${EXENAME}.lnk" "$INSTDIR\${EXENAME}.exe" #开始菜单 创建快捷方式CreateShortcut "$SMPROGRAMS\${EXENAME}\Uninstall.lnk" "$INSTDIR\Uninstall.exe" #开始菜单 创建删除exe的快捷方式WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${EXENAME}" "DisplayName" "${EXENAME}" #控制面板显示程序名称WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${EXENAME}" "UninstallString" "$INSTDIR\Uninstall.exe" #设置卸载程序关联的文件WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${EXENAME}" "DisplayIcon" "$INSTDIR\${EXENAME}.exe" #控制面板显示程序图标
SectionEndSection "Uninstall" #卸载程序的作用RMDIR /r $INSTDIR #移除安装文件内所有内容RMDIR /r "$SMPROGRAMS\${EXENAME}" #移除开始菜单\程序名内所有内容Delete "$DESKTOP\${SHORTCUT}.lnk" #移除桌面快捷方式DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${EXENAME}" #移除注册表内容
SectionEnd
使用
-
构建Unity exe(Mono)文件;
-
构建nsi文件,填充上述代码
-
使用Visula Studio打开
修改文件编码为
-
!define EXENAME “exeName” 设置exeName为发布文件内exe启动程序文件名
!define SHORTCUT “快捷方式名称” 设置桌面快捷方式的中文名称 -
nsi脚本放置到exe文件中
-
打开nsis编译器,拖拽nsi脚本
-
等待编辑即可
-
编译成功 exe文件夹内生成 exeName_Setup.exe文件
相关文章:
Nsis打包Unity Exe文件(通用)
Nsi 脚本 !include "MUI2.nsh"#使用现代UI Unicode true #使用Unicode !define EXENAME "exeName" #定义常量 exe名称 !define SHORTCUT "快捷方式名称" #定义桌面快捷方式的中文名称Name ${EXENAME} #安装程序的title OutFile "${EXENAME…...
【Azure 架构师学习笔记】- Azure Databricks (6) - 配置Unity Catalog
本文属于【Azure 架构师学习笔记】系列。 本文属于【Azure Databricks】系列。 接上文 【Azure 架构师学习笔记】- Azure Databricks (5) - Unity Catalog 简介 UC的关键特性 之所以DataBricks要用UC, 很大程度是对安全的管控。从上文可以了解到它的四大特性&#…...
redis7部署集群:包含主从模式、哨兵模式、Cluster集群模式等三种模式
前言: redis部署集群常见的一般有三种模式:主从模式,Sentinel(哨兵模式),Redis Cluster(高可用Cluster集群),根据不同的需求可自定义选择部署方式。 Redis 主从模式&…...
072:vue+mapbox 点击某图层feature,高亮这部分
第072个 点击查看专栏目录 本示例是介绍如何在vue+mapbox中点击某图层feature,高亮这部分。思路是通过点击,获取点击部分的feature信息,生成一个新的source和layer,如果这个图层不为空,则清除之,相当于点击了别的地方,原有的高亮会删除掉,在别的地方高亮。 直接复制下…...
2024年最新安全且稳定的大数据传输方式
随着大数据时代的兴起,数据传输的速度和效率已经成为企业竞争的关键因素。到了2024年,大数据传输领域迎来了新的趋势和挑战,同时也涌现出了一系列创新的解决方案。本文将深入探讨这些新趋势和解决方案,意在帮助企业更好地迎接大数…...
Docker 数据卷容器
docker在容器中管理数据主要有两种方式: 数据卷(Volumes)挂载主机目录(Bind mounts) 而每个容器的数据都是独立的,数据跟随着容器的生命周期。如mysql容器,如果容器被删除了所有的数据都会丢失…...
深度学习记录--梯度检验
数值逼近 为了对梯度进行检验,需要计算近似误差值来接近梯度 对于单边误差和双边误差公式,其中双边误差与真实梯度相差更小,故一般采用双边误差公式 双边误差 公式: 梯度检验(gradient checking) 对于成本函数,求出…...
ERP进出库+办公用品管理系统
系统架构 简介系统架构部分页面结构图UML逻辑图办公用品入出库 简介 本系统适用于ERP企业公司职员关于系统化的申请相关办公用品,提高整体系统整合行,加大上下级之间的联系,规避因人员过多,而浪费人力在简单重复的工作中…...
Redis 笔记一
概览 1.Redis核心数据存储结构 2.Redis底层String编码int&embstr&raw 3.Redis底层压缩列表&跳表&哈希表 4.Redis底层Zset实现压缩列表和跳表如何选择 5.基于Redis实现微博&抢红包&12306核心业务 辅助学习:Redis 教程 | 菜鸟教程 1.Redis为什…...
学习记录687@spring data jpa 动态传递list参数并判断list是否为空
实际应用中需要在spring data jpa中使用原生sql,传递的参数是list,要根据list判断是否为空来判断是否要使用这个参数。 尝试了很多方法,比如size、length、is null、!null等等,都要报错,比如could not extract Result…...
寒假刷题第五天
PTA甲级 1022 Digital Library 大模拟 #include<iostream> #include<unordered_map> #include<unordered_set> #include<vector> #include<set>using namespace std;unordered_map<string , set<int>>ti , au , key , pub , year…...
Leetcode454四数相加Ⅱ(java实现)
今天,我们分享的题目是Leetcode454四数相加Ⅱ,我们先来看题目: 首先可以从题意中大体得知,也是从某个集合中找有没有符合条件的元素。遇见这种类型的题目我们可以考虑用哈希表,本题我们选取的是map集合,因…...
mysql 容器化安装(docker)离线和在线
前言:在部署hive或airflow 升级过程中,总需要一个对应的数据库存储元数据,一个轻量级的mysql容器刚刚好。轻量、可快速移植、具有隔离性。 文章目录 1、查看机器版本2、安装 docker3、启动docker 服务4、docker 常用命令docker5、拉取mysql …...
2. FPGA的电路结构概述
文章目录 1. 引言2. FPGA的一般结构2.1 概要2.2 FPGA三部分构成间的关系: 3. 小结 1. 引言 结构决定原理。原理未必决定结构。理解FPGA结构,进而能阐明其工作原理很有必要。FPGA产品的风云变换,其基本结构保持相对不变。 2. FPGA的一般结构…...
【Qt】Qt配置
需要云服务器等云产品来学习Linux的同学可以移步/-->腾讯云<--/-->阿里云<--/-->华为云<--/官网,轻量型云服务器低至112元/年,新用户首次下单享超低折扣。 目录 一、Qt SDK下载 二、配置环境变量 三、新建工程(QWidget) 四、QWidg…...
查看Linux系统内存、CPU、磁盘使用率和详细信息
一、查看内存占用 1、free # free -m 以MB为单位显示内存使用情况 [rootlocalhost ~]# free -mtotal used free shared buff/cache available Mem: 11852 1250 8668 410 1934 9873 Swap: 601…...
HttpServletRequest getServerPort()、getLocalPort() 、getRemotePort() 区别
getRemotePort() 、getServerPort()、getLocalPort() request.getServerPort()、request.getLocalPort() 和 request.getRemotePort() 这三个方法都是获取与HTTP请求相关的端口信息的 客户端(如浏览器)通过某个随机分配的网络连接端口(7070) 向服务器发送HTTP请求( http://exam…...
NVIDIA jetson编译opencv 源码 python版本
安装 jetson-stats 查看GPU的利用率 sudo apt-get install python3-pip sudo -H pip3 install jetson-stats 运行 jtop 进行查看 opencv 编译python版本 编译命令 cmake -D CMAKE_INSTALL_PREFIX/usr/local/opencv-4.6.0 -D CMAKE_BUILD_TYPERELEASE -D WITH_OPENGLON -D …...
TCP的三次握手,四次挥手
三次握手 第一次握手:客户端发送SYN报文,井发送seq为x序列号给服务端,等待服务端的确认第二次握手:服务端发送SYNACK报文,并发送seq为Y的序列号,在确认序列号为x1第三次握手:客户端发送ACK报文&…...
ElasticSearch高阶使用
目录 一、match_all 二、 text和keyword的区别 三、match、term的区别 四、exists query 五、 ids query 六、range query范围查询 七、prefix query前缀查询 八、 wildcard query通配符查询 九、 fuzzy query模糊查询 十、match query匹配查询 十一、multi_match q…...
wordpress后台更新后 前端没变化的解决方法
使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…...
[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解
突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 安全措施依赖问题 GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...
【第二十一章 SDIO接口(SDIO)】
第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...
质量体系的重要
质量体系是为确保产品、服务或过程质量满足规定要求,由相互关联的要素构成的有机整体。其核心内容可归纳为以下五个方面: 🏛️ 一、组织架构与职责 质量体系明确组织内各部门、岗位的职责与权限,形成层级清晰的管理网络…...
C# 类和继承(抽象类)
抽象类 抽象类是指设计为被继承的类。抽象类只能被用作其他类的基类。 不能创建抽象类的实例。抽象类使用abstract修饰符声明。 抽象类可以包含抽象成员或普通的非抽象成员。抽象类的成员可以是抽象成员和普通带 实现的成员的任意组合。抽象类自己可以派生自另一个抽象类。例…...
3403. 从盒子中找出字典序最大的字符串 I
3403. 从盒子中找出字典序最大的字符串 I 题目链接:3403. 从盒子中找出字典序最大的字符串 I 代码如下: class Solution { public:string answerString(string word, int numFriends) {if (numFriends 1) {return word;}string res;for (int i 0;i &…...
【学习笔记】深入理解Java虚拟机学习笔记——第4章 虚拟机性能监控,故障处理工具
第2章 虚拟机性能监控,故障处理工具 4.1 概述 略 4.2 基础故障处理工具 4.2.1 jps:虚拟机进程状况工具 命令:jps [options] [hostid] 功能:本地虚拟机进程显示进程ID(与ps相同),可同时显示主类&#x…...
安卓基础(aar)
重新设置java21的环境,临时设置 $env:JAVA_HOME "D:\Android Studio\jbr" 查看当前环境变量 JAVA_HOME 的值 echo $env:JAVA_HOME 构建ARR文件 ./gradlew :private-lib:assembleRelease 目录是这样的: MyApp/ ├── app/ …...
(一)单例模式
一、前言 单例模式属于六大创建型模式,即在软件设计过程中,主要关注创建对象的结果,并不关心创建对象的过程及细节。创建型设计模式将类对象的实例化过程进行抽象化接口设计,从而隐藏了类对象的实例是如何被创建的,封装了软件系统使用的具体对象类型。 六大创建型模式包括…...
离线语音识别方案分析
随着人工智能技术的不断发展,语音识别技术也得到了广泛的应用,从智能家居到车载系统,语音识别正在改变我们与设备的交互方式。尤其是离线语音识别,由于其在没有网络连接的情况下仍然能提供稳定、准确的语音处理能力,广…...
