当前位置: 首页 > 知识库问答 >
问题:

Inno Setup“deleteafterinstall”标志:如果文件被锁定会发生什么?

咸皓
2023-03-14

我正在为一些临时文件使用delete的安装标志,但如果他们仍然被锁定的进程在Inno安装程序完成时,他们会被安排在稍后删除吗?

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

安装后删除

指示安装程序照常安装文件,但在安装完成(或中止)后将其删除。这对于提取在脚本的[Run]部分中执行的程序所需的临时数据非常有用。

此标志不会导致删除安装过程中未替换的现有文件。

此标志不能与isreadme、regserver、regtypelib、restartreplace、Sharedfile或uninsneverun安装标志组合使用。

共有1个答案

谷涵容
2023-03-14

我不知道你对答案期望有多少深刻的解释,但我认为最好的方法是跳转到源代码中。因此,所有指定了delete在安装后标志的文件都被添加到DeleteFilesAfterInstallList集合中,该集合在设置被反初始化时迭代。当时,集合是逐个文件迭代的,对于该集合中的每个文件,称为DeleteFileRedir函数,该函数可选地禁用WOW64重定向(对本例不重要)并调用Windows API函数DeleteFile,该函数不执行延迟删除。

 类似资料:
  • 死锁描述了另外两个线程因为永远等待对方而被阻塞的情况。当死锁发生时,程序永远挂起,你唯一能做的就是杀死程序。 为什么在下面给出的示例生产者-消费者问题中没有发生死锁: 我想知道为什么当同步对象正在等待其他线程释放锁时,在同步块中调用等待方法不会导致死锁?

  • 我们如何处理抵消腐败? 我想把偏移量日志保存在其他地方,或者拍摄偏移量的快照。我怎么能这么做?

  • Hibernate是我的JPA实现。

  • 我是线程新手,目前正在学习线程同步章节。关于线程锁定中的一个场景,我有一个问题 以下是我所知道的: 1:当我在实例方法中放置实例锁时(即) 这里将发生的情况是,如果有一个类X的对象A被多个线程共享,并且一些线程t1正在执行f1的块,那么直到t1退出f1块,所有试图进入函数f3的其他线程,f1都将被阻止。f2和f4的情况也是如此。 现在,在静态锁的情况下,如果一个类有多个静态方法,并且我们希望这些方

  • 问题内容: 假设我创建了一个对象,该对象具有ID,firstName,lastName和email,用于实例变量和相应的setter / getter方法。如何,如果我不重写计算中时,它存储在集合对象的对象? 问题答案: 如果不重写hashcode(),则集合将使用Object类中的默认实现。即使根据equals()方法它们相等,此实现也会为不同的对象提供不同的值。 一些集合(例如HashSet,

  • 问题内容: 以下代码导致死锁(在我的电脑上): 但是,如果我将reducelambda参数替换为匿名类,则不会导致死锁: 你能解释一下这种情况吗? P.S. 我发现该代码(与之前的代码有些不同): 工作不稳定。在大多数情况下,它挂起了,但是有时它成功完成了: 在此处输入图片说明 我真的不明白为什么这种行为不稳定。实际上,我重新测试了第一个代码段,并且行为相同。因此,最新的代码等于第一个。 为了了解