【发布时间】:2018-02-22 20:19:01
【问题描述】:
对于我的应用程序的安装和部署,我使用的是 Inno-Setup 5.5.4。我目前的安装结构如下:
C:\MyApp
C:\MyApp\app.exe
C:\MyApp\FolderA
C:\MyApp\FolderA\InstalledFile.txt
C:\MyApp\FolderA\NewFile.txt
C:\MyApp\FolderB
C:\MyApp\FolderB\NewFile.txt
...
C:\MyApp\FolderZ
卸载应用程序后,我想删除所有可能由应用程序创建的文件,但特定文件夹中的文件除外。 (即C:\MyApp\FolderA\NewFile.txt)。
我的第一次尝试是在 [UninstallDelete] 部分中为我要清理的每个文件夹设置一个条目。类似于以下内容:
[UninstallDelete]
Type: filesandordirs; Name: C:\MyApp\FolderB
Type: filesandordirs; Name: C:\MyApp\FolderC
...
Type: filesandordirs; Name: C:\MyApp\FolderZ
但是,我不喜欢这种解决方案,因为每次向应用程序添加新文件夹时,我都必须考虑修改安装程序。
第二种方法是仅在特定文件夹为空时删除它,然后设置要删除的应用程序的根文件夹。类似于以下内容:
[UninstallDelete]
Type: dirifempty; Name: C:\MyApp\FolderA
Type: filesandordirs; Name: C:\MyApp\
这第二种方法行得通吗?有没有更合理的方法来实现这一点?
【问题讨论】: