Inno setup InnoSetup Uninstallable=孤立目录中没有结果

Inno setup InnoSetup Uninstallable=孤立目录中没有结果,inno-setup,Inno Setup,当“父”Inno安装程序的“子”应用程序全部卸载后,我很难创建并留下一个孤立的目录。下面是我正在使用的父安装程序代码的一个示例,我省略了不重要的细节 父安装程序配置为: [Setup] Uninstallable=no CreateUninstallRegKey=no DefaultDirName={pf32}\{#MyAppPublisher} [Dirs] ;This section is empty [Files] Source: "SetupA-1.00"; DestDir: "{t

当“父”Inno安装程序的“子”应用程序全部卸载后,我很难创建并留下一个孤立的目录。下面是我正在使用的父安装程序代码的一个示例,我省略了不重要的细节

父安装程序配置为:

[Setup]
Uninstallable=no
CreateUninstallRegKey=no
DefaultDirName={pf32}\{#MyAppPublisher}

[Dirs]
;This section is empty

[Files]
Source: "SetupA-1.00"; DestDir: "{tmp}"; DestName: "setupa.exe"; Flags: deleteafterinstall; Tasks: "installA"
Source: "SetupB-2.00"; DestDir: "{tmp}"; DestName: "setupb.exe"; Flags: deleteafterinstall; Tasks: "installB"

[Run]
Filename: "{tmp}\setupA.exe"; Parameters: "/SILENT"; Tasks: "installA"
Filename: "{tmp}\setupB.exe"; Parameters: "/SILENT"; Tasks: "installB"
现在,我怀疑DefaultDirName是个问题,但还应该注意子应用程序的安装方式:

[Setup]
Uninstallable=yes
DefaultDirName={pf32}\{#MyAppPublisher}\{#MyAppName}
因此,用例是运行父级(可能引导程序是更好的名称)安装程序,用户选择他们希望安装的应用程序,然后将这些应用程序安装到Program Files\Pub\AppName中。这些应用程序的卸载是一个逐个手动的过程,不会有“父卸载程序”。卸载所有子应用程序后,Program Files\Pub目录始终保留、孤立且为空。由于父安装程序被配置为可卸载=否,因此除了手动删除外,无法删除此目录。不幸的是,DefaultDirName在所有Inno脚本中都是必需的,但必须有某种方法来抑制它的创建


我已经考虑过在子安装程序中添加一个Program Files\Pub uninstall检查,这样,如果整个publisher目录为空,则可以将其删除,但这会带来更多麻烦。有什么想法吗?

我想如果有人遇到这个问题,我会跟进


我已将父安装程序配置为使用DefaultDirName的公共应用程序数据文件夹,这样在卸载它时,留下可能为空的目录不会造成任何实际伤害。不完美,但它符合我们的要求。

CreateAppDir指令应设置为“否”,以禁止创建应用程序目录。除了可卸载之外,其他有用的指令还有CreateUninstallRegKey和UpdateUninstallLogAppName