nsis 卸载程序不会删除链接
Posted
技术标签:
【中文标题】nsis 卸载程序不会删除链接【英文标题】:nsis uninstaller doesn't remove links 【发布时间】:2013-02-10 18:31:01 【问题描述】:我有这个问题: 在安装程序部分我有这个;
Section "Start Menu Shortcuts"
SetShellVarContext current
CreateDirectory "$SMPROGRAMS\myProgram"
CreateShortCut "$SMPROGRAMS\myProgram\myProgram.lnk" "$INSTDIR\myProgram.exe"
CreateShortCut "$SMPROGRAMS\myProgram\Uninstall myProgram.lnk" "$INSTDIR\myProgram-Uninstall.exe"
SectionEnd
Section "Desktop Shortcut"
SetShellVarContext current
CreateShortCut "$DESKTOP\myProgram.lnk" "$INSTDIR\myProgram.exe"
SectionEnd
它工作正常,我在桌面上有图标,在开始\程序...树上有图标和卸载图标
卸载程序部分是这样的:
SetShellVarContext current
Delete "$DESKTOP\myProgram.lnk"
Delete "$SMPROGRAMS\myProgram\myProgram.lnk"
Delete "$SMPROGRAMS\myProgram\Uninstall myProgram.lnk"
RMDir "$SMPROGRAMS\myProgram"
桌面链接已被删除,但包含链接的其他文件夹没有.. 有什么想法吗?
存储的文件夹是这个(我在win 7 64位):
C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Start Menu\Programs
【问题讨论】:
【参考方案1】:你的脚本中有RequestExecutionLevel 吗?如果没有它,Windows 可能会使用您的快捷方式执行一些compatibility hacks。
如果这没有帮助,请尝试Process Monitor,它也许可以解决这个问题...
【讨论】:
谢谢!我已经添加了 RequestExecutionLevel 管理员,现在可以工作了……如果我的当前用户是管理员的话……谢谢 我不知道为什么“RequestExecutionLevel admin”对我不起作用,但“SetShellVarContext all”对我有用... @Sorayuki 它应该防止兼容性垫片启动,但不会删除可能已经存在的兼容性快捷方式......以上是关于nsis 卸载程序不会删除链接的主要内容,如果未能解决你的问题,请参考以下文章
我的 NSIS 脚本的卸载没有从 ProgramData 目录中删除链接