卸载后 nsis 快捷方式未删除

nsis shortcuts not deleting after uninstall

我正在使用 nsis 为我的应用程序创建 windows 安装程序。我在启动菜单中为应用程序和 uninstall.exe 添加了快捷方式,并在卸载过程中删除了它们,但在卸载过程中不会删除快捷方式。安装和卸载代码片段如下:

section "install"
    createDirectory "$SMPROGRAMS${COMPANYNAME}${APPNAME}\"
    createShortCut "$SMPROGRAMS${COMPANYNAME}${APPNAME}${APPNAME} Uninstall.lnk" "$INSTDIR\uninstall.exe"
    createShortCut "$SMPROGRAMS${COMPANYNAME}${APPNAME}${APPNAME}.lnk" "$INSTDIR\app.exe" "" "$INSTDIR\logo.ico" 
sectionEnd

section "uninstall"
    delete "$SMPROGRAMS${COMPANYNAME}${APPNAME}${APPNAME}.lnk"
    delete "$SMPROGRAMS${COMPANYNAME}${APPNAME}${APPNAME} Uninstall.lnk"
    rmDir /r "$SMPROGRAMS${COMPANYNAME}${APPNAME}"    
sectionEnd

有人可以帮我解决这个问题吗?

添加一些关于您在哪个 Windows 版本上看到的详细信息等会有所帮助,但我猜测是 this only happens on Vista and later。这些版本的 Windows 有一个兼容性垫片,可以将某些快捷方式移动到所有用户的开始菜单。

要阻止 Windows 执行此操作,您必须将安装程序标记为 UAC 兼容,这可以通过将 RequestExecutionLevel 属性添加到您的脚本来完成。