【electron】nsis重编译,自定义nsis校验弹窗警告的文案

nsis默认的弹窗警告:

可以修改NSIS目录下stubs/zlib_solid文件修改文案,该文件为c++项目编译产出后的文件,故需要修改文件需要重新编译nsis

1.下载nsis源码:

2.安装python:

  • 已安装的可以忽略,从 Python 官方网站 Download Python | Python.org 下载 ,这里下载的最新的3.10的版本,环境变量会默认配置,如果没有的话就主动添加

3.安装SCons:

4.下载wxWidges:

5.保证本地有vc++6.0的编译环境:

6.编译menu文件:

  • 进入nsis-3.08-src\Contrib\NSIS Menu\wx,vs打开对应的wxWidges项目,通过工具打开命令行(管理员方式打开)下启动 wxbuild.bat,先编译 Menu 程序

7.编译nsis:

  • scons ZLIB_W32="D:\Program Files (x86)\Zlib-1.2.7-win32-x86"  NSIS_CONFIG_LOG=yes NSIS_MAX_STRLEN=8192 dist-zip

重新编译后会生成一个nsis-(日期).cvs.zip文件,解压后找到stubs/zlib_solid_ansi文件覆盖原来的zlib_solid文件即可。

重编译中遇到的问题:

fatal error C1083: 无法打开包括文件: “stdio.h”: No such file or directory

网上方案都尝试过以后还是不行,从vs2019中直接调出命令行,然后再运行就ok了

编译中提示:

 Please specify folder of zlib for Win32 via ZLIB_W32

Zlib - NSIS下载对应的zib文件并配置对应的环境变量

如果还不行可以参考nsis官方文档,将zib配置路径在命令行中使用:scons ZLIB_W32="D:\Program Files (x86)\Zlib-1.2.7-win32-x86" NSIS_CONFIG_LOG=yes NSIS_MAX_STRLEN=8192 dist-zip 编译

中文乱码:

直接在编辑器中写入中文文案后弹窗展示为乱码

原因:

编辑器自动使用了utf-8编码,但是源文件使用的是ansi编码,在notepate++中调整编码格式即可

注:

如果是替换原文件,需要清楚原先的nsis的版本,我们之前用的是unicode版本的,所以后续又重新编译了一边unicode的src文件才ok,下载地址:https://code.google.com/archive/p/unsis/downloads

如果需要编译低版本的nsis,需要安装对应版本环境,如python使用2.7,vs使用vs2010

参考:

NSIS 3.0a1 - NSIS Forums


版权声明:本文为jingjingchen1014原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。