【发布时间】:2011-02-16 08:23:14
【问题描述】:
我想在卸载应用程序时删除Startmenu\XXX 文件夹和Program Files\XXX 菜单。
试过RMDir /r 但这对我不起作用。
(Windows 7)
【问题讨论】:
标签: installation nsis
我想在卸载应用程序时删除Startmenu\XXX 文件夹和Program Files\XXX 菜单。
试过RMDir /r 但这对我不起作用。
(Windows 7)
【问题讨论】:
标签: installation nsis
RMDir 是正确的指令,你的路径可能是错误的。
删除开始菜单的一个常见问题是忘记使用 RequestExecutionLevel,请参阅this page on the NSIS wiki
Process Monitor 可以帮助您检测路径和权限问题...
【讨论】:
Windows 有时不允许您删除仍在使用的文件夹。解决方案是标记文件夹(和/或文件)以在下次系统重新启动时删除。为此,请使用标志 /REBOOTOK
对于文件:
Delete /REBOOTOK "<filename>"
对于文件夹
RMDir /R /REBOOTOK directoryname
下次重启后,文件/文件夹将被删除。
【讨论】:
这是您的解决方案: 添加“SetShellVarContext all”
http://nsis.sourceforge.net/Shortcuts_removal_fails_on_Windows_Vista
示例代码:
OutFile Win7.exe
Name Win7
Section
SetShellVarContext all
CreateDirectory "$SMPROGRAMS\Win7 Testing"
CreateShortcut "$SMPROGRAMS\Win7 Testing\win7test.lnk" "$WINDIR\notepad.exe"
WriteUninstaller "$EXEDIR\uninst.exe"
SectionEnd
Section uninstall
SetShellVarContext all
Delete "$SMPROGRAMS\Win7 Testing\win7test.lnk"
RMDir "$SMPROGRAMS\Win7 Testing"
SectionEnd
-乔德夫
【讨论】: