Удаление файлов, установленных предыдущей версией в Inno Setup ⇐ JAVA

Программисты JAVA общаются здесь
Anonymous
Удаление файлов, установленных предыдущей версией в Inno Setup

Сообщение Anonymous »

Я использую Inno Setup для упаковки Java-приложения для Windows; дерево приложения выглядит следующим образом:

Код: Выделить всё

|   MyApp.jar
\---lib
|   dependency-A-1.2.3.jar
|   dependency-B-2.3.4.jar
|   dependency-Z-x.y.z.jar
Я использую Ant для предварительной подготовки всего дерева (всех файлов и папок), включая каталог lib (используя подстановочный знак *.jar для копирования зависимостей) ), то я просто вызываю ISCC с помощью:

Код: Выделить всё

[Files]
Source: "PreparedFolder\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs
Теперь Мне нужно очищать каталог lib каждый раз, когда пользователь обновляет приложение, поскольку я хочу удалить все устаревшие зависимости. Я мог бы добавить следующий раздел в свой файл .iss:

Код: Выделить всё

[InstallDelete]
{app}\lib\*.jar
но я не чувствую себя в безопасности, потому что, если пользователь решит установить приложение в существующую папку, содержащую непустую подпапку lib (редко, но не невозможно), существует вероятность того, что некоторые пользовательские файлы будут удалены при обновлении.
Есть ли какой-нибудь лучший способ избежать подобных проблем? Другие установщики решают эту головную боль? Спасибо.

Подробнее здесь: https://stackoverflow.com/questions/460 ... inno-setup

Вернуться в «JAVA»