Moin moin,
zuerst würde ich das als Fehler melden, damit das Problem analysiert und in einem zukünftigen Release gelöst wird.
Als Workaround würde ich die Set:Product Sektion im Aufruf als DONTDELETE flaggen und entweder eine Sektion Set:ProductInstallDir erstellen, die vor Set:Product aufgerufen wird und nur "1:, %App%, CREATE DIRECTORY CASCADED, 0" enthält, oder eine Sektion Set:Uninstall (Flag DELETE), die "Deltree %App%" enthält.
Eine weitere mögliche Variante:
Wir haben eine Anwendung, die ebenfalls aus unzähligen kleinen Dateien besteht. Da mir das Kopieren sowohl beim Sync als auch bei der Installation zu lange gedauert hat, habe ich das Installationsverzeichnis mit 7Zip eingepackt und entpacke es mittels 7za bei der Installation via setup.inf. Deinstallation ist dann ebenfalls Installationsverzeichnis löschen.
Falls das genutzt wird, hier der funktionierende Aufruf für 7za:
Code: Select all
CallHidden CMD /C echo 1 && "%src%\7za.exe" x "%SRC%\xyz.7z" -o"%App%" -r -y 2>&1 1>"%temp%\7z_log.log"
Das Echo vor dem eigentlichen Aufruf ist wichtig, da sich das Programm in der bei uns eingesetzten Version 9.20 sonst direkt wieder beendet (warum auch immer).
Grüße,
Lennu