-2

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

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

我的理解是到目前为止有 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
4

1 回答 1

0

我尝试了上述两种方法,但都不适合我。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

于 2013-06-18T22:19:02.477 回答