防止 Inno Setup 在卸载时删除某些文件

Posted

技术标签:

【中文标题】防止 Inno Setup 在卸载时删除某些文件【英文标题】:Prevent Inno Setup deleting some files on uninstall 【发布时间】:2014-07-08 21:10:51 【问题描述】:

嗯,这个实际问题已经在标题中描述了。我想防止 Inno Setup 卸载删除存储在 program installation 目录中的 logconfig 文件。我知道这是一个不好的做法。通常我应该使用每个用户的目录并将所有个人数据存储在那里。

不过,这是一种特殊情况。我正在使用的程序是一个非常旧的应用程序的包装器。这个旧应用程序有很多硬编码的路径,我需要它驻留在C:\ 上,并将 logs 保存在与可执行文件相同的目录中。反正整个设置有点乱。

有没有一种简单的方法可以在卸载过程中选择性地删除文件/文件夹? 我可以防止其中一些被删除吗?

【问题讨论】:

Flags: uninsneveruninstall 用于您安装但卸载后想要离开的文件。安装后应用程序自身创建的所有文件在卸载期间不会被删除 - 除非您在脚本中对其进行编程。 是的,这有帮助,你能把这个作为答案发布,然后我会标记它已解决 【参考方案1】:

Flags: uninsneveruninstall 用于您安装但想要/需要在卸载后离开的文件。

安装后应用程序本身创建的所有文件在卸载过程中不会被删除 - 除非您在安装脚本中对其进行编程。

【讨论】:

我的应用部署到用户选择的目录。卸载应用程序后,我有一个希望保留的文件。我需要在我的设置清单中添加什么?谢谢 [Files] Source: "C:\My_Setup_Files\FileIwantToKeep.ext"; DestDir: "app"; Flags: uninsneveruninstall onlyifdoesntexist - 第一个标志在卸载期间不删除,第二个标志在重新安装过程中不覆盖如果文件存在于先前版本之后。 就我而言,onlyifdoesntexist 在我的清单中没有做任何事情(Inno v 5.5.4(a)。

以上是关于防止 Inno Setup 在卸载时删除某些文件的主要内容,如果未能解决你的问题,请参考以下文章

Inno setup 卸载时删除程序文件夹(文件)

INNO SETUP卸载时为啥不能强制删除安装目录

inno setup 之Deltree 用法

Inno Setup:卸载过程中重新启动后删除文件夹

关于Inno Setup卸载程序删除文件夹的问题

卸载失败,因为程序正在运行。如何在尝试删除之前让 Inno Setup 检查正在运行的进程?