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

相关推荐
dashizhi201520 小时前
电脑禁用U口、禁用USB端口、屏蔽移动存储设备使用的方法
windows·安全·电脑
航Hang*20 小时前
Windows Server 配置与管理——第10章:配置FTP服务器
运维·服务器·网络·windows·学习·vmware
灵犀海棠20 小时前
电脑运行程序配置
windows
航Hang*21 小时前
Windows Server 配置与管理——第9章:配置DHCP服务器
运维·服务器·windows·学习
LuDvei21 小时前
windows x86中ssh远程连接 ubuntu
windows·ubuntu·ssh
浩星21 小时前
electron系列9:调用原生能力,剪贴板、通知、开机自启
前端·javascript·electron
李少兄21 小时前
Windows 安装 Maven 详细教程(含镜像与本地仓库配置)
java·windows·maven
CodeCaptain21 小时前
【三】OpenClaw给飞书添加24小时工作的AI助理
windows·ubuntu·ai·飞书·openclaw
来自内蒙古的田园蒙牛1 天前
在 Windows 系统下,使用 PyCharm 开发工具,如何通过直接调用 API 的方式,利用你手头的 OpenAI 接口地址和 Key 来辅助代码编写
ide·windows·pycharm
从零开始学习人工智能1 天前
Windows 下 Docker + WSL2 + NVIDIA GPU 完整配置指南(2026 最新实测)
windows·docker·容器