2007-11-30
Часто встречается такая задача - показ информации о версии приложения в GUI. Например, пользователь нажимает кнопку About и получает информацию о том, какой версией программы пользуется. Пожалуй самое неудачное решение - это подгрузка информации о версии во время выполнения программы (например из конфигурационного xml). В этом случае вы никогда не можете быть уверены в том, с какой версией собственно имеете дело. Вывод: информация о версии должна быть зашита в приложение на этапе компиляции и быть доступна в коде. Способы решения:
Приведу пример использования resource bundle. В коде используем обычный ResourceBundle API. XML:
Если вы знаете еще какие-то решения, то будет очень интересно их обсудить. PS: Существует библиотека, которая частично помогает решить проблему. Эта библиотека описана в посте Release version API. Трекбек адрес этой записиURL трекбека (щелкните правой кнопкой мыши и скопируйте ссылку) 6 комментариев
Мы используем 3-й вариант
сборку осуществляем ant-ом Как это сделать удобнее всего IMHO во flex-е до 3-й версии: 1. Делаем template файл для версии VersionInfoTemplate.as, аля package com.anychart { class VersionInfo { public static const version:String = '4.%major%.%minor%'; } } 2. делаем ini файл version.ini version.major=4 version.minor=0 3. в анте волшебный таргет: <target name="updateVersionInfo"> <propertyfile file="${path.anychart}/version.ini"> <entry key="version.minor" type="int" operation="+" value="1" /> </propertyfile> <property file="${path.anychart}/version.ini" /> <!-- major version --> <copy file="${path.anychart}/src/com/anychart/VerionInfoTemplate.as" tofile="${path.anychart}/src/com/anychart/VerionInfo.as" overwrite="true"/> <replace file="${path.anychart}/src/com/anychart/VerionInfo.as" token="%major%" value="${version.major}"/> <replace file="${path.anychart}/src/com/anychart/VerionInfo.as" token="%minor%" value="${version.major}"/> </target> Как следствие, при каждой сборке инсталла не надо заморачиваться над версиями, они автоматически инкрементятся перед сборкой ;-) Это для тех, кто использует flex 2
2007-12-02 @ 12:09
Мы используем 3-й вариант Спасибо за такой подробный и полезный комментарий. Очень приятно, когда такие комментарии читаешь.
2007-12-02 @ 14:22
еще удобно версию из svn брать Согласна. Вообще сложно себе представить работу без использования системы контроля версий.
2007-12-02 @ 14:23
Думаю что более правильно назвать это номер сборки.
Потому как номер версии это обычно изменение API. Приведу пример: Если у вас есть зависимость от версии библиотеки, то при её перекомпиляции, всё продолжает работать.
2007-12-03 @ 12:50
Думаю что более правильно назвать это номер сборки. Я может быть не совсем прозрачно выразилась. Я не предлагаю номер версии генерить автоматически. Автоматически генерятся уже готовые файлы с нужной структурой.
2007-12-03 @ 17:18
Оставить комментарий |