您建议在运行卸载时删除仅安装文件的库或宏?
我知道这个问题已被问到很多,但我正在寻找关于最新和最容易使用的宏/库的建议。和过去一样,我使用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
答案 0 :(得分:0)
我尝试了上面提到的两个,但都没有为我工作。 Advanced_Uninstall_Log运行良好,但是对于我所拥有的数据量,它在安装过程中增加了很大的延迟。
uninstall_only_installed_files不用于使用file / r进行递归安装。
我最终编写了一个python脚本,创建了两个宏,InstallFiles和UninstallFiles。在使用MakeNSIS构建NSIS安装程序之前,我使用批处理文件来调用此脚本并生成install_files.nsh。
有人在这里张贴了类似的剧本; http://nsis.sourceforge.net/Talk:Uninstall_only_installed_files