【问题标题】:Recommended Library/Macro that Deletes Installed Files on Uninstallation卸载时删除已安装文件的推荐库/宏
【发布时间】:2013-04-29 03:51:12
【问题描述】:

您会推荐哪个库或宏在运行卸载时仅删除已安装的文件?

我知道这种问题已经被问了很多,但我正在寻找有关最新和最容易使用的宏/库的建议。和过去一样,我使用发布在 NSIS Website 上的旧宏进行命令行参数解析等操作,但在代码和实现方面存在问题。

我的理解是目前有2个(还有更多吗?):

Advanced_Uninstall_Log
Uninstall_only_installed_files

您使用和推荐哪个库或单个宏?

我希望我能够通过仅指定文件夹 X 来安装文件(并将安装其所有子文件),然后卸载程序将删除文件夹 X 中的所有子文件,但保留任何用户创建的文件。

例如:

Section "install"
   File \r "FolderX" 

   # note how I dont do this..
   File \r "FolderX\filea.txt" 
   File \r "FolderX\fileb.txt"
SectionEnd

Section "un.uninstall"
   ${RemoveDir} "FolderX" 

   # The above hypothetical function will hopefully only delete the files in FolderX that I installed.
   Delete \r "FolderX\filea.txt" 
   Delete \r "FolderX\fileb.txt"
SectionEnd

【问题讨论】:

    标签: installation nsis


    【解决方案1】:

    我尝试了上述两种方法,但都不适合我。 Advanced_Uninstall_Log 运行良好,但对于我拥有的数据量,它在安装过程中增加了巨大的延迟。

    uninstall_only_installed_files 不适用于使用文件 /r 进行递归安装。

    我最终编写了一个 python 脚本,它创建了两个宏,InstallFiles 和 UninstallFiles。在使用 MakeNSIS 构建 NSIS 安装程序之前,我使用批处理文件调用此脚本并生成 install_files.nsh。

    有人在这里发布了他的类似脚本; http://nsis.sourceforge.net/Talk:Uninstall_only_installed_files

    【讨论】:

      猜你喜欢
      • 2010-10-01
      • 2011-01-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-14
      • 1970-01-01
      相关资源
      最近更新 更多