Inno Setup“deleteafterinstall”标志:如果文件被锁定会怎么样?

时间:2013-11-27 10:20:28

标签: inno-setup

我正在使用deleteafterinstall标志来表示某些临时文件,但是如果在Inno安装程序安装程序完成时它们仍被某个进程锁定,它们是否会安排在以后删除?

文档没有提到在这种情况下会发生什么:

  

deleteafterinstall

     

指示安装程序照常安装文件,但是   然后在安装完成(或中止)后删除它。这个   可用于提取程序所需的临时数据   在脚本的[运行]部分执行。

     

此标志不会导致在此期间未替换的现有文件   要删除的安装。

     

此标志不能与isreadme,regserver,regtypelib结合使用,   restartreplace,sharedfile或uninsneveruninstall flags。

1 个答案:

答案 0 :(得分:1)

我不确定你对答案有多么深刻的解释,但我认为最好的是跳到源代码中。因此,所有指定了deleteafterinstall标志的文件都会添加到DeleteFilesAfterInstallList集合中,该集合在设置被取消初始化时会被重复。那时,集合是iterated file by file,并且对于该集合中的每个文件称为DeleteFileRedir函数,它可以选择性地禁用WOW64重定向(对于这种情况不重要)并调用Windows API函数{{3 },它不执行延迟删除。