Inno Setup:卸载过程中重新启动后删除文件夹
Posted
技术标签:
【中文标题】Inno Setup:卸载过程中重新启动后删除文件夹【英文标题】:Inno Setup: Deleting folders after restart during uninstallation 【发布时间】:2020-09-09 12:59:29 【问题描述】:我有一个关于在使用 Inno Setup 卸载期间删除文件夹的问题。
在我的脚本中,我在一些文件上使用了uninsrestartdelete
标志,并在卸载的最后一步调用app
文件夹上的DelTree
。有时,在系统重新启动之前我无法删除所有文件(那些是代码注入 DLL)。在这种情况下,我无法成功删除app
文件夹。在系统重新启动时删除app
文件夹的正确方法是什么?当我尝试删除它时,我可以确保文件夹中没有文件。
【问题讨论】:
【参考方案1】:要在重新启动时安排文件或目录删除,请调用 RestartReplace
function 并将 DestFile
(第二个)参数设置为空字符串 (''
)。
RestartReplace(FileToDelete, '');
对于目录,仅当它们为空时才有效。因此,您必须先调用RestartReplace
来获取目录中的所有文件,这些文件无法删除。
有关详细信息,请参阅 WinAPI function MoveFileEx
及其 MOVEFILE_DELAY_UNTIL_REBOOT
标志,它位于 Inno Setup RestartReplace
函数后面。
【讨论】:
以上是关于Inno Setup:卸载过程中重新启动后删除文件夹的主要内容,如果未能解决你的问题,请参考以下文章
跪求inno setup补丁包更新后,卸载程序不能删除注册表?