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.
此问题即可解决。

相关推荐
学习溢出18 分钟前
深入了解 net user 命令:上一次是谁登录的?
windows·网络安全·系统安全
程序猿小D28 分钟前
第二百六十七节 JPA教程 - JPA查询AND条件示例
java·开发语言·前端·数据库·windows·python·jpa
N0zoM1z012 小时前
域内用户名枚举 实验
windows
梓䈑15 小时前
【C语言】自定义类型:结构体
c语言·开发语言·windows
感谢地心引力18 小时前
【MATLAB2024b】安装离线帮助文档(windows)
windows·matlab
退居二线程序员1 天前
【完-网络安全】Windows注册表
windows
Ling-X52 天前
红日靶机(三)笔记
linux·windows·内网渗透·靶机笔记·vulnstack
GEEKVIP2 天前
iPhone/iPad技巧:如何解锁锁定的 iPhone 或 iPad
windows·macos·ios·智能手机·笔记本电脑·iphone·ipad
百事牛2 天前
防止错误输入!Excel单元格限制输入内容的三种有效方式
windows·excel
风竹夜2 天前
记录一次病毒启动脚本
c++·windows·安全·编辑器·batch·福昕阅读器