Ich verwende Inno Setup, um eine Java -Anwendung für Windows zu verpacken. Der Anwendungsbaum ist wie folgt: < /p>
Code: Select all
| MyApp.jar
\---lib
| dependency-A-1.2.3.jar
| dependency-B-2.3.4.jar
| dependency-Z-x.y.z.jar
Ich verwende Ant, um den gesamten Baum (alle Dateien und Ordner) im Voraus zu erstellen, einschließlich des Verzeichnisses von lib (mit *.jar Wildcard, um die Abhängigkeiten zu kopieren ), dann nenne ich einfach iscc mit:
Code: Select all
[Files]
Source: "PreparedFolder\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs
Jetzt
Ich muss jedes Mal, wenn der Benutzer die Anwendung aktualisiert, das Verzeichnis lib aufräumen, da ich alle veralteten Abhängigkeiten entfernen möchte. Ich könnte den folgenden Abschnitt zu meiner .ISS -Datei hinzufügen:
, aber ich fühle mich nicht sicher, denn wenn ein Benutzer beschließt, die Anwendung in einem vorhandenen Ordner zu installieren, der einen nicht leeren Lib Unterordner enthält (selten, aber nicht unmöglich), Es besteht die Möglichkeit, dass einige Benutzerdateien beim Upgrade gelöscht werden. Kümmern sich andere Installateure um diese Kopfschmerzen? Danke.