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

相关推荐
CODER03042 小时前
封装忽律底层硬件差异的自定义系统
windows·microsoft
软件资深者2 小时前
Windows10、11轻松设置 使用教程:把Windows繁杂的设置集成到一个面板,关广告/关更新/调隐私全搞定,系统设置工具新手 5 分钟上手(2026)
windows
YCOSA20254 小时前
Windows 11 Insider 实验预览版 26300.9032 基于26100.6(检查点26100.1746)
windows
happymagic4 小时前
vmware workstation Pro 虚拟机设定启停的时间段
运维·服务器·windows
PC2005-cloud5 小时前
Windows 下 WSL2 + Docker Desktop + Ubuntu 开发环境搭建指南
windows·ubuntu·docker
王维同学5 小时前
跨位数进程的映像、命令行与环境块读取
c++·windows·安全
蛊明6 小时前
一台老 ThinkPad 的系统博物馆:Windows、Ubuntu、UOS、Kylin多系统共存方案
windows·ubuntu·kylin
Moshow郑锴6 小时前
qlik-cli - Get started with examples
服务器·windows·microsoft
WangWei_CM6 小时前
跨位数进程的映像、命令行与环境块读取
windows
小白白3611 天前
Pixelorama怎么用?像素画绘制和动画制作入门
windows