使用nsis制作的安装包安装后,无法卸载干净的问题

使用nsis制作的安装包安装后,在安装目录下会生成uninst.exe文件,如下图所示。

使用nsis制作的安装包安装后,无法卸载干净的问题

 

我们可以通过执行该uninst.exe程序删除已经安装的软件,也可以在控制面板中删除该软件。但有时候我们通过这些途径删除软件后,在安装目录下仍然可能会残留文件或者文件夹无法删除。如下图所示,运行卸载程序后在安装目录下Log和Resources文件夹仍然存在,在Log文件夹下面还存在Alarm、System、User三个文件夹,在这三个文件夹下面还存在多个XML文件。

 

使用nsis制作的安装包安装后,无法卸载干净的问题使用nsis制作的安装包安装后,无法卸载干净的问题

 

 

这时候我们可以通过修改nsis生成的nsi文件来删除这些文件。在nsi文件中加入语句  

  Delete "$INSTDIR\Log\Alarm\*"

  Delete "$INSTDIR\Log\System\*"

  Delete "$INSTDIR\Log\User\*"

  RMDir "$INSTDIR\Log"
  RMDir "$INSTDIR\Resources"

如下图所示:

使用nsis制作的安装包安装后,无法卸载干净的问题

 

重新执行“Compile NSIS Script”生成安装包安装后,再运行卸载程序,这时候可以看到程序已经被卸载干净了。