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 小时前
【分享】打开PDF文件的几种方式
windows·pdf
萧行之6 小时前
Ubuntu+Windows双系统:解决GRUB不显示Windows启动项、一闪而过问题
linux·windows·ubuntu
深念Y6 小时前
踩坑实录:把 Windows 默认 PowerShell 换成 7.x 到底有多坑?一条龙解决指南
windows·乱码·bug·控制台·powershell·管道·流式
夜猫逐梦6 小时前
[开发经验] DLL注入中控制台窗口无法关闭的排查与修复
c++·windows·控制台
无限进步_6 小时前
C++ 多态机制完全解析:从虚函数重写到动态绑定原理
java·c语言·jvm·数据结构·c++·windows·后端
天都3576 小时前
青少年ctf 日志排查 复盘
windows·网络安全·应急响应
南汁bbj10 小时前
彻底解决!Milvus远程连接报错code=2、gRPC超时问题(Windows访问Linux服务终极方案)
linux·windows·milvus
草履虫君12 小时前
windows系统装机,小白win10装机教程wepe模式,包括系统盘怎么制作,bios怎么设置
windows·经验分享
minxihou12 小时前
迅雷下载导致 Windows 11 频繁卡死?一根 SATA 线的锅
windows·磁盘
我不是立达刘宁宇13 小时前
windows信息收集
windows·安全