我正在创建更新设置文件。在我的初始安装中,我有一个在 [UninstallRun] 中调用的 EXE 文件。在更新中,我想永久删除这个 EXE 文件,但在更新后卸载时似乎总是抛出“无法删除某些元素”的错误。
要删除 EXE,我尝试在更新的 [InstallDelete]
期间将其删除。这将删除文件,但在卸载文件时仍会抛出错误消息(即使所有文件都已明确删除)。
我尝试替换更新中的 EXE 并使用 deleteafterinstall
标志,但这并没有什么不同。
如果我什么都不做,只是安装它,当我运行卸载程序时,会调用 EXE 文件,即使更新不再包含 [UninstallRun]
部分。所以看起来初始安装的安装文件正在用于卸载部分。
为了这个项目的目的,我不能改变初始安装,所以一切都必须从更新安装开始。有没有办法删除放在 UninstallRun
部分中的现有文件?
最佳答案
问题是先前安装的 [UninstallRun]
条目已经在卸载日志中注册,所以简单地从脚本中删除它不会阻止它生效,并且删除默认情况下,文件会生成该错误,因为(大概)由于文件丢失,一些必需的卸载任务没有发生。
您是否记得在原始安装程序的 [UninstallRun]
条目上放置一个 RunOnceId
?如果是这样,您可以使用相同的 ID 放置一个“替换”条目。您仍然需要将其指向一个 exe,但您可以将其设为空操作,或者(更好)使用 Flags: skipifdoesntexist
并将其指向您已删除的那个。
如果您没有使用 RunOnceId
,则没有任何方法可以覆盖之前的条目。您只需放入一个什么都不做的虚拟 exe 文件。
关于file - 更新以前的安装设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13547378/