Inno setup Inno设置可以';t在静默卸载中删除应用程序文件夹

Inno setup Inno设置可以';t在静默卸载中删除应用程序文件夹,inno-setup,pascalscript,Inno Setup,Pascalscript,我的应用程序有“完全卸载”选项,可以删除所有数据,包括ProgramData和Program Files应用程序文件夹。它由单独的窗口决定,并使用DelTree方法删除文件夹 Deltree(ExpandConstant('{app}'), true, true, true); 在usPostUninstall步骤中执行删除。但是,当我在静默模式下进行完全删除时,应用程序文件夹不会被删除,并且我可以在程序文件中找到它,尽管它实际上是空的(如果它不是静默的,则会毫无问题地删除所有)。在静默卸载期

我的应用程序有“完全卸载”选项,可以删除所有数据,包括ProgramData和Program Files应用程序文件夹。它由单独的窗口决定,并使用
DelTree
方法删除文件夹

Deltree(ExpandConstant('{app}'), true, true, true);
在usPostUninstall步骤中执行删除。但是,当我在静默模式下进行完全删除时,应用程序文件夹不会被删除,并且我可以在程序文件中找到它,尽管它实际上是空的(如果它不是静默的,则会毫无问题地删除所有)。在静默卸载期间,什么可以阻止文件夹删除

下面是最简单的示例,使用常见的Inno安装示例文件

; -- 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;

在仍在执行的文件夹中可能有
unins001.exe
。@Thomas这也是我最初的想法,但为什么它只在静默模式下才会导致问题?刚刚检查了它现在的工作方式。最后删除的文件实际上不是unins。@Thomas提供的示例它可能与UAC的某些限制或类似的限制有关吗?