ICON 未从开始菜单显示,也未从控制面板 -> 使用 NSIS 的程序和功能显示

ICON is not displaying from the start menu and also from Control Panel -> Programs and Features using NSIS

我尝试了很多方法来从开始菜单和控制面板 -> 程序和功能中显示图标。当我 运行 本地机器上的脚本显示图标时。但是当我 运行 这个安装程序在其他机器上时它没有显示图标。我尝试了以下方法,但它没有在其他机器上显示 ICON。我的代码有什么问题吗?请帮我解决这个问题。

!define COMPANYNAME "Test"
!define APPNAME "Personal"

方法1 从开始菜单显示图标:

InitPluginsDir
File /oname=$PLUGINSDIR\newicon.ico "\workspace\NULLSOFT\src\Bitmaps\ProductIcon.ico"

SetShellVarContext all
createDirectory "$SMPROGRAMS${COMPANYNAME}"
createShortCut "$SMPROGRAMS${COMPANYNAME}${APPNAME}.lnk" "$INSTDIR\Test.exe" "" "$PLUGINSDIR\newicon.ico" 0

方法二从开始菜单显示图标:

SetShellVarContext all
createDirectory "$SMPROGRAMS${COMPANYNAME}"
createShortCut "$SMPROGRAMS\test.lnk" "$INSTDIR\Test.exe" "" "C:\NULLSOFT\src\Bitmaps\Test.ico"

方法3 从开始菜单显示图标:

SetShellVarContext all
createDirectory "$SMPROGRAMS${COMPANYNAME}"
createShortCut "$SMPROGRAMS${COMPANYNAME}${APPNAME}.lnk" "$INSTDIR\Test.exe" "" "C:\Program Files\NSIS\Contrib\Modern UI 2\Bitmaps\Test.ico" 1

方法4 从开始菜单显示图标:

SetShellVarContext all
createDirectory "$SMPROGRAMS${COMPANYNAME}"
createShortCut "$SMPROGRAMS${COMPANYNAME}${APPNAME}.lnk" "$INSTDIR\Test.exe" "" "$INSTDIR\Test.ico" 0

您不能在 $PluginsDir 中存储图标(或其他永久文件),因为此目录已被安装程序删除!

您通常只需将图标放入您的 .EXE 中,但如果您不能这样做,那么您必须将 .ICO 提取到 $InstDir:

Section
SetOutPath $InstDir
File "c:\myfiles\MyApp.exe"
File "c:\myfiles\ProductIcon.ico"

CreateShortcut "$SMPrograms\MyApp.lnk" "$InstDir\MyApp.exe" "" "$InstDir\ProductIcon.ico" 0

WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\MyApp" "DisplayIcon" "$InstDir\ProductIcon.ico"
WriteRegStr ... write the other uninstall data.
SectionEnd

在开发过程中如果您之前的尝试损坏了缓存,您可能必须refresh the shell icons or even rebuild the icon cache