Я работаю с чистой установкой InstallScript в InstallShield Pro 2010.Удаление старых версий файлов во время обновления установите
Кувшин файл третьей стороной был заменен на более новую версию в нашем программном обеспечении. Когда выполняется установка обновления, устанавливается новая банка, но старая банка также остается. Наступают плохие вещи.
Как я могу установить InstallShield для обновления содержимого папки и удалить любые другие файлы в этом месте, которые не включены в текущую версию?
Я просмотрел параметры Component -> Overwrite, но это только кажется применимым «когда установщик встречает существующий файл с тем же именем, что и тот, который установлен».
Кроме того, я понимаю, что я мог бы добавить что-то в скрипты, чтобы удалить нарушительный файл, но мне нужно масштабируемое решение. С течением времени будут заменены другие файлы, и я бы не стал вручную добавлять исправления к установщику каждый раз, когда это происходит.
Хотя я ожидаю, что это сработает, это не очень идеально. Было бы очень неприятно помнить, что мы запускаем activemq 5.4.1, но банку все еще называют activemq-all-5.3.1.jar. Это также не сработало бы, если бы что-то было просто удалено (вместо замены на другую версию. – sjohnston
Почему бы просто не назвать его activemq.jar? В мире Win32 у меня обычно нет foo1.exe, за которым следует foo2.exe. Я просто назову его foo.exe. Чтобы решить вашу вторую проблему, мы используем Windows Installer, а не чистые проекты InstallScript. Возможность декларативно обесценить компонент и позволить установщику автоматически обрабатывать его удаление делает вещи намного проще. императивный/процедурный сценарий слишком хрупкий и требует много времени. –