Определение версии автоматического обновления Install4j

Я использую функцию автоматического обновления install4j для приложения, над которым я работаю. Мне было интересно, как именно он определяет, требуется ли обновление?

Я не уверен, основан ли он исключительно на номере версии приложения, сравниваемом со значением newProperty в соответствующей записи в update.xml. Или идентификатор приложения (на экране конфигурации установщика) где-то играет роль?


person akatkinson    schedule 20.12.2011    source источник


Ответы (1)


Логика обнаружения обновлений настраивается.

Посмотрите на приложение установки программы обновления на вкладке «Установщик» -> «Экраны и действия» и найдите действие с именем «Обновить запись дескриптора». Это действие представляет собой просто действие «Установить переменную» со сценарием

((UpdateDescriptor)context.getVariable("updateDescriptor")).getPossibleUpdateEntry()

Метод UpdateDescriptor#getPossibleUpdateEntry() сравнивает номер версии установленного приложения с номерами версий в загруженном файле updates.xml. Точнее, он находит запись в файле update.xml для идентификатора файла мультимедиа, совпадающего с идентификатором файла мультимедиа программы установки, которая использовалась для установки текущей установки, и использует номер версии этой записи.

Вы можете заменить эту логику своей собственной логикой, например, используя пользовательские атрибуты в файле updates.xml, которые были настроены на вкладке Installer->Auto-Update Options.

person Ingo Kegel    schedule 20.12.2011