electron nsis 安装包 window下任务栏无法正常固定与取消固定 Pin to taskbar

问题

win10系统下,程序任务栏在固定后取消固定,展示的程序内容异常。


排查

1.通过论坛查询,应该是与app的api setAppUserModelId 相关

https://github.com/electron/electron/issues/3303

2.electron-builder脚本

electron-builder的脚本中有一项是 appId这个配置项,官方说这个也是用于配置AppId的和api是一致的。

验证通过electron-builder直接nsis打包的可以解决这个问题,但是项目要美观的nsis界面,通过自定义nsis打包,这个问题又出现了。说明问题不再编译时,在安装的时候这个appid生效的。

3.查找electron-builder源码中appId什么时候被设置

nsis中的名称是APP_ID

查到在安装脚本中,快捷方式创建后,执行了WinShell的方法,将appid设置到快捷方式中。

问题解决

解决

1.直接使用electron-builder打包则只需要把程序中的setAppUserModelId 和electron-builder配置文件中的appId保持一致即可。
2.nsis这种打包方式,这种打包方式需要先下载nsis的winshell插件,
https://nsis.sourceforge.io/WinShell_plug-in
解压安装包,将其中的插件dll拷贝到Plugin的库中。
nsis脚本通过ReserveFile命令拷贝WinShell插件。
在CreateShortCut之后,再使用
WinShell::SetLnkAUMI进行设置AppUserModelId.
此问题即可解决。

相关推荐
面朝大海,春不暖,花不开1 小时前
Python 文件操作与输入输出:从基础到高级应用
windows·python·microsoft
染指11103 小时前
35.x64汇编写法(二)
汇编·windows·x64游戏·x64汇编·游戏攻防
新兴AI民工4 小时前
windows上的visual studio2022的项目使用jenkins自动打包
windows·jenkins·visual studio
WarPigs4 小时前
Visual Studio问题记录
ide·windows·visual studio
love530love5 小时前
【笔记】旧版MSYS2 环境中 Rust 升级问题及解决过程
开发语言·人工智能·windows·笔记·python·rust·virtualenv
Java Fans7 小时前
如何在Windows本机安装Python并确保与Python.NET兼容
开发语言·windows·python
卸任8 小时前
Electron自制翻译工具:增加中英互译
前端·react.js·electron
Abigail_chow18 小时前
EXCEL如何快速批量给两字姓名中间加空格
windows·microsoft·excel·学习方法·政务
love530love19 小时前
【笔记】在 MSYS2(MINGW64)中正确安装 Rust
运维·开发语言·人工智能·windows·笔记·python·rust
代码搬运媛21 小时前
“packageManager“: “[email protected]“ 配置如何正确启动项目?
windows·webpack