【问题标题】:NSIS: Deleting a folder upon uninstallNSIS:卸载时删除文件夹
【发布时间】:2011-02-16 08:23:14
【问题描述】:

我想在卸载应用程序时删除Startmenu\XXX 文件夹和Program Files\XXX 菜单。

试过RMDir /r 但这对我不起作用。 (Windows 7)

【问题讨论】:

    标签: installation nsis


    【解决方案1】:

    RMDir 是正确的指令,你的路径可能是错误的。

    删除开始菜单的一个常见问题是忘记使用 RequestExecutionLevel,请参阅this page on the NSIS wiki

    Process Monitor 可以帮助您检测路径和权限问题...

    【讨论】:

      【解决方案2】:

      Windows 有时不允许您删除仍在使用的文件夹。解决方案是标记文件夹(和/或文件)以在下次系统重新启动时删除。为此,请使用标志 /REBOOTOK

      对于文件:

      Delete /REBOOTOK "<filename>"
      

      对于文件夹

      RMDir /R /REBOOTOK directoryname
      

      下次重启后,文件/文件夹将被删除。

      另请参阅:http://nsis.sourceforge.net/Reference/RMDir

      【讨论】:

        【解决方案3】:

        这是您的解决方案: 添加“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
        

        -乔德夫

        【讨论】:

          猜你喜欢
          • 2020-06-19
          • 2013-02-20
          • 2014-09-13
          • 2011-01-02
          • 2018-12-06
          • 1970-01-01
          • 2012-09-07
          • 1970-01-01
          • 2014-09-27
          相关资源
          最近更新 更多