每次更新后固定在任务栏的图标就消失了, 能否优化。
这个问题困扰我很久了,还是反馈一下。应该是能解决的,毕竟我固定的几个浏览器图标一直更新也没消失。
好像是安装包制作方面的问题。
每次更新后固定在任务栏的图标就消失了, 能否优化。
这个问题困扰我很久了,还是反馈一下。应该是能解决的,毕竟我固定的几个浏览器图标一直更新也没消失。
好像是安装包制作方面的问题。
问:需要更详细的解释一下 TaskBarIcon 里的代码
答:当然可以。以下是关于 "TaskBarIcon" 部分代码的详细解释:
Section "TaskBarIcon" secTaskbarIcon
CreateShortCut "$APPDATA\Microsoft\Windows\Start Menu\${APP_NAME}.lnk" "$INSTALLDIR\YourApp.exe" \
"IconFile ""$INSTALLDIR\YourApp.ico"" ; IconIndex 0" \
"WorkingDir ""$INSTALLDIR""" \
"Description ""${APP_NAME}"" ; ShortcutName ""${APP_NAME}""" \
"ShowOnlyOnTaskbar" TRUE
UpdateIcon "$APPDATA\Microsoft\Windows\Start Menu\${APP_NAME}.lnk" "${INSTALLDIR}\YourApp.ico"
SectionEnd
Section "TaskBarIcon" secTaskbarIcon
:定义一个名为 "TaskBarIcon" 的 section。这个 section 将在安装过程中创建任务栏图标。CreateShortCut "$APPDATA\Microsoft\Windows\Start Menu\${APP_NAME}.lnk" "$INSTALLDIR\YourApp.exe"
:创建一个名为 "${APP_NAME}.lnk" 的快捷方式,指向安装目录下的 "YourApp.exe" 文件。这将在用户的启动菜单中创建一个快捷方式。"IconFile ""$INSTALLDIR\YourApp.ico"" ; IconIndex 0"
:设置快捷方式的图标。这里我们使用安装目录下的 "YourApp.ico" 文件作为图标。"WorkingDir ""$INSTALLDIR"""
:设置快捷方式的工作目录。这里我们将其设置为安装目录。"Description ""${APP_NAME}"" ; ShortcutName ""${APP_NAME}"""
:设置快捷方式的描述和显示名称。这里我们将其设置为 "${APP_NAME}"。"ShowOnlyOnTaskbar" TRUE
:设置快捷方式仅在任务栏上显示。这将确保图标不会出现在启动菜单中。UpdateIcon "$APPDATA\Microsoft\Windows\Start Menu\${APP_NAME}.lnk" "${INSTALLDIR}\YourApp.ico"
:在安装和更新过程中更新快捷方式的图标。这将确保任务栏图标在更新软件时保持不变。SectionEnd
:结束 "TaskBarIcon" section。这段代码的主要目的是在安装过程中创建一个任务栏图标,并在更新软件时更新图标。这样,无论何时更新软件,任务栏上的图标都将保持不变。
我刚问了一下大模型,给我的回答是这样的:
这是因为在制作安装包时,NSIS 脚本没有正确处理任务栏图标的更新。当你更新软件时,NSIS 会覆盖原有的安装文件,其中包括应用程序的快捷方式和任务栏图标。为了解决这个问题,你需要在 NSIS 脚本中添加逻辑来更新任务栏图标。
以下是一个简单的示例脚本,用于在安装和更新过程中保留任务栏图标:
!include "MUI2.nsh"
!define APP_NAME "YourApp"
!define APP_VERSION "1.0.0"
!define APP_PUBLISHER "YourCompany"
Name "${APP_NAME} ${APP_VERSION}"
Caption "${APP_NAME}"
Outfile "${APP_NAME}_${APP_VERSION}.exe"
InstallDir "$PROGRAMFILES\${APP_NAME}"
InstallDirRegKey HKCUSoftware\${APP_PUBLISHER}\${APP_NAME} ""
RequestExecutionLevel admin
ShowInstDetails show
Section "MainSection" secMain
; ...
SectionEnd
Section "TaskBarIcon" secTaskbarIcon
CreateShortCut "$APPDATA\Microsoft\Windows\Start Menu\${APP_NAME}.lnk" "$INSTALLDIR\YourApp.exe" \
"IconFile ""$INSTALLDIR\YourApp.ico"" ; IconIndex 0" \
"WorkingDir ""$INSTALLDIR""" \
"Description ""${APP_NAME}"" ; ShortcutName ""${APP_NAME}""" \
"ShowOnlyOnTaskbar" TRUE
UpdateIcon "$APPDATA\Microsoft\Windows\Start Menu\${APP_NAME}.lnk" "${INSTALLDIR}\YourApp.ico"
SectionEnd
Section "Uninstall"
; ...
SectionEnd
在这个示例脚本中,我们创建了一个名为 "TaskBarIcon" 的 section。在这个 section 中,我们首先创建了一个任务栏图标快捷方式,并将其信息存储在应用程序的启动菜单中。然后,我们使用 UpdateIcon
指令在安装和更新过程中更新图标。这样,无论何时更新软件,任务栏上的图标都将保持不变。
多谢花时间尝试解决,这个问题确实麻烦,也许还需要时间再看看,我也试了下 Issue #2514 · electron-userland/electron-builder 中提到的强制添加任务栏图标的方案,在 Win 11 上并不工作。
据说 99% 的性能瓶颈都在数据库。
提供一个服务绝不仅仅是简单的把硬件和软件累加在一起,它包括了服务的可靠性、服务的标准化、以及对服务的监控、维护、技术支持等。
生活是指人类生存过程中的各项活动的总和,范畴较广,一般指为幸福的意义而存在。生活实际上是对人生的一种诠释。生活包括人类在社会中与自己息息相关的日常活动和心理影射。
百度应用引擎(Baidu App Engine)提供了 PHP、Java、Python 的执行环境,以及云存储、消息服务、云数据库等全面的云服务。它可以让开发者实现自动地部署和管理应用,并且提供动态扩容和负载均衡的运行环境,让开发者不用考虑高成本的运维工作,只需专注于业务逻辑,大大降低了开发者学习和迁移的成本。
Ubuntu(友帮拓、优般图、乌班图)是一个以桌面应用为主的 Linux 操作系统,其名称来自非洲南部祖鲁语或豪萨语的“ubuntu”一词,意思是“人性”、“我的存在是因为大家的存在”,是非洲传统的一种价值观,类似华人社会的“仁爱”思想。Ubuntu 的目标在于为一般用户提供一个最新的、同时又相当稳定的主要由自由软件构建而成的操作系统。
大数据(big data)是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。
阿里云是阿里巴巴集团旗下公司,是全球领先的云计算及人工智能科技公司。提供云服务器、云数据库、云安全等云计算服务,以及大数据、人工智能服务、精准定制基于场景的行业解决方案。
webpack 是一个用于前端开发的模块加载器和打包工具,它能把各种资源,例如 JS、CSS(less/sass)、图片等都作为模块来使用和处理。
Pipe 是一款小而美的开源博客平台。Pipe 有着非常活跃的社区,可将文章作为帖子推送到社区,来自社区的回帖将作为博客评论进行联动(具体细节请浏览 B3log 构思 - 分布式社区网络)。
这是一种全新的网络社区体验,让热爱记录和分享的你不再感到孤单!
JVM(Java Virtual Machine)Java 虚拟机是一个微型操作系统,有自己的硬件构架体系,还有相应的指令系统。能够识别 Java 独特的 .class 文件(字节码),能够将这些文件中的信息读取出来,使得 Java 程序只需要生成 Java 虚拟机上的字节码后就能在不同操作系统平台上进行运行。
React 是 Facebook 开源的一个用于构建 UI 的 JavaScript 库。
单点登录(Single Sign On)是目前比较流行的企业业务整合的解决方案之一。SSO 的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。
PostgreSQL 是一款功能强大的企业级数据库系统,在 BSD 开源许可证下发布。
你创造的作品可能会帮助到很多人,如果是开源项目的话就更赞了!
ReactiveX 是一个专注于异步编程与控制可观察数据(或者事件)流的 API。它组合了观察者模式,迭代器模式和函数式编程的优秀思想。
OpenStack 是一个云操作系统,通过数据中心可控制大型的计算、存储、网络等资源池。所有的管理通过前端界面管理员就可以完成,同样也可以通过 Web 接口让最终用户部署资源。
Vim 是类 UNIX 系统文本编辑器 Vi 的加强版本,加入了更多特性来帮助编辑源代码。Vim 的部分增强功能包括文件比较(vimdiff)、语法高亮、全面的帮助系统、本地脚本(Vimscript)和便于选择的可视化模式。
Typecho 是一款博客程序,它在 GPLv2 许可证下发行,基于 PHP 构建,可以运行在各种平台上,支持多种数据库(MySQL、PostgreSQL、SQLite)。
Hprose 是一款先进的轻量级、跨语言、跨平台、无侵入式、高性能动态远程对象调用引擎库。它不仅简单易用,而且功能强大。你无需专门学习,只需看上几眼,就能用它轻松构建分布式应用系统。
上帝为你关上了一扇门,然后就去睡觉了....努力不一定能成功,但不努力一定很轻松 (° ー °〃)
Openfire 是开源的、基于可拓展通讯和表示协议 (XMPP)、采用 Java 编程语言开发的实时协作服务器。Openfire 的效率很高,单台服务器可支持上万并发用户。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于