Nsis MUI_图标被忽略

Nsis MUI_图标被忽略,nsis,Nsis,我编写了一个NSIS安装脚本,现在我正在尝试自定义安装程序图标。默认情况下,生成的安装文件如下所示: 我想自定义它使用不同的图标,但是。以下是我添加的代码: !include MUI.nsh !define MUI_ICON my_icon.ico 我的my_icon.ico文件与此.nsi脚本位于同一目录中,是的,它是一个有效的ico文件。然而,当我编译脚本时,实际上什么也没有发生——图标没有改变 我遗漏了什么?安装程序运行时,您是否在任务栏和alt+选项卡上看到正确的图标 这可能只是浏

我编写了一个NSIS安装脚本,现在我正在尝试自定义安装程序图标。默认情况下,生成的安装文件如下所示:

我想自定义它使用不同的图标,但是。以下是我添加的代码:

!include MUI.nsh

!define MUI_ICON my_icon.ico
我的
my_icon.ico
文件与此
.nsi
脚本位于同一目录中,是的,它是一个有效的ico文件。然而,当我编译脚本时,实际上什么也没有发生——图标没有改变


我遗漏了什么?

安装程序运行时,您是否在任务栏和alt+选项卡上看到正确的图标

这可能只是浏览器缓存图标。我也可以在我的系统上复制它:

如果makensis找不到图标,它会抱怨,并且您的代码看起来是正确的:

!include MUI.nsh

!define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\arrow-install.ico"

!insertmacro MUI_PAGE_WELCOME
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_PAGE_FINISH
!insertmacro MUI_LANGUAGE "English"

Section
SectionEnd

打开记事本或任何其他使用标准打开对话框的应用程序的新实例,并导航到.exe所在的文件夹,将筛选器设置为“所有文件”时,您应该会看到正确的图标。您还可以在图标或资源编辑器中打开.exe,以验证它是否具有正确的图标…

这使我找到了正确的答案。诀窍是添加这一行:
!insertmacro MUI_PAGE_INSTFILES
MUI_PAGE_INSTFILES应该无关紧要,但如果经过一段时间,图标缓存项可能不再有效,并触发从现在更新的.exe文件读取…当我包含该行时,它会使用图标编译可执行文件。当我随后排除该行时,可执行文件将恢复为旧图标。同样,该行不重要。当应用程序运行时,只需查看标题栏中的图标,无论是否有instfiles页面,它都应该是正确的。不要相信资源管理器中的文件列表,如果您真的认为这不是缓存问题,请使用另一个工具(angusj.com/resourcehacker)……标题栏、任务栏或Alt选项卡中的图标在没有该行的情况下都是不正确的。