首页 > 解决方案 > Inno Setup:卸载过程中重新启动后删除文件夹

问题描述

我有一个关于在使用 Inno Setup 卸载期间删除文件夹的问题。

在我的脚本中,我uninsrestartdelete在一些文件上使用了标志,并在卸载的最后一步调用DelTree{app}文件夹。有时,在系统重新启动之前我无法删除所有文件(那些是代码注入 DLL)。在这种情况下,我无法{app}成功删除该文件夹。{app}在系统重新启动时删除文件夹的正确方法是什么?当我尝试删除它时,我可以确保文件夹中没有文件。

标签: windowsinno-setupuninstallation

解决方案


要在重新启动时安排文件或目录删除,请调用RestartReplace函数并将DestFile(第二个)参数设置为空字符串('')。

RestartReplace(FileToDelete, '');

对于目录,这只有在它们为空时才有效。因此,您必须首先调用RestartReplace目录中的所有文件,这些文件无法删除。

详情请参考Inno Setup 函数后面的WinAPI 函数MoveFileEx及其标志。MOVEFILE_DELAY_UNTIL_REBOOTRestartReplace


推荐阅读