如何在卸载过程中按条件删除文件夹?

时间:2014-07-05 10:59:24

标签: inno-setup

我有两个产品,所以我创建了两个安装程序,让我们说展示内部。我的产品使用了一个Common第三方应用程序,因此我提供了每个安装程序。

如果我想安装Showcase产品,在安装过程中,它会检查是否安装了内部产品。如果内部产品未安装,则第三方文件将安装在Common文件夹中。

展示 将按如下方式安装:

          {pf}\Company_Name\
                     ----->Common
                             --->Third party player
                     ----->Showcase
                             --->Showcase product related files

现在我想安装内部,如 Showcase 安装,它会检查是否安装了 Showcase 。已安装展示。所以它只会安装内部设备并且不会安装第三方文件。

现在的文件结构如下:

         {pf}\Company_Name
                     ----->Common
                             --->Third party player
                     ----->Showcase
                             --->Showcase product related files
                     ----->Interior
                             --->Interior product related files

现在我的问题是,

当我卸载展示产品时,它还会删除Common文件夹。所以内饰产品不会运行。所以我想告诉Uninstaller,不要按条件卸载Common文件夹。怎么做?

请帮助..

提前致谢...

1 个答案:

答案 0 :(得分:0)

1)您的安装的 {app} 文件夹是什么? {pf} \ Company_Name 或直接展示内部文件夹?

2)卸载程序通常会删除{app}文件夹中安装期间复制的所有文件。这意味着:如果有人在{app}文件夹中创建新文件(比如说一些配置文件),则卸载程序不会删除它。 由于{app}文件夹只有在空(默认情况下)卸载程序时才会被删除(显示相应的消息)。

3)您使用哪些标志来安装文件?您可以在 Common 文件上使用 uninsneveruninstall 标志,以便卸载程序永远不会删除它们,您可以在[代码]中删除它们。 (您需要以某种方式检测其他软件是否未使用它们。)

目前没有确切的解决方案(需要更多信息),但最后一次机会是手动复制所有文件(例如将它们提取到Temp并复制到[Code]中),这样您就可以完全控制它们。