我有"完全卸载"我的应用程序的选项,它应该删除所有数据,包括ProgramData和Program Files应用程序文件夹。它由单独的窗口决定,文件夹使用DelTree
方法
Deltree(ExpandConstant('{app}'), true, true, true);
在usPostUninstall步骤中执行删除。但是,当我完全删除是静音模式时,app文件夹不会被删除,我可以在Program Files中找到它,尽管它实际上是空的(如果它不是静音,所有都被删除没有问题)。什么可以在静默卸载期间阻止文件夹删除?
这是最简单的示例,使用常见的Inno Setup示例文件
; -- UninstallCodeExample1.iss --
;
; This script shows various things you can achieve using a [Code] section for Uninstall
[Setup]
AppName=My Program
AppVersion=1.5
DefaultDirName={pf}\My Program
DefaultGroupName=My Program
UninstallDisplayIcon={app}\MyProg.exe
OutputDir=userdocs:Inno Setup Examples Output
[Files]
Source: "MyProg.exe"; DestDir: "{app}"
Source: "MyProg.chm"; DestDir: "{app}"
Source: "Readme.txt"; DestDir: "{app}"; Flags: isreadme
[Code]
procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
begin
if CurUninstallStep = usPostUninstall then
begin
if not DelTree(ExpandConstant('{app}'), true, true, true) then
MsgBox('Can''t remove some files', mbError, MB_OK);
end;
end;