Баги В Установщиках. Где Их Нет?

Недавно я был на хабе статья об ошибке установщика Adobe. Меня эта статья тронула, потому что автор, ссылаясь на ошибку, сделал вывод, что даже такие крупные и известные компании, как Adobe, «иногда забывают о простоте установки».

и может «написать программу колоссальной сложности и объёма, но сэкономить на динамическом определении пути установки, реализация которого под силу даже студенту».

Вот мне показалось, что это камень в огород разработчиков установщика Adobe. Поэтому решил написать ответный пост и посмотреть установщики, их цену и пару багов.

Я не имею никакого отношения к Adobe. УПД: Добавил картинку о трудностях локализации))



Из личного опыта.

Мы перенесли InstallSHield 12 с одной машины на другую.

Дело в том, что активация/деактивация InstallSHield 12 осуществляется через Интернет; Следует отметить, что деактивация осуществляется автоматически.

Переустановка заняла месяц, так как не смогли активировать InstallShield на новой машине и получили ошибку, что ключ уже используется на другой.

Переписка со службой поддержки InstallShield продолжалась до тех пор, пока американский коллега нецензурной лексикой не попросил исправить ситуацию в нашу пользу.

В ходе переписки пришла красивая брошюра с картинками, в которой было написано что-то вроде: проблемы с переносом installshield? Купите новую лицензию с более гибкими настройками! А кто виноват в том, что деинсталлятор работает криво? Разработчик? Совет по этой проблеме: нужно нагрубить, если того требует ситуация, громко заявить, что лицензия стоит больших денег, а пользы от нее ноль.

Или купить новую лицензию, если условия вас устраивают.

Мультиплатформенность и нативность.

Программы для создания инсталляторов я для краткости буду называть «IDE», хотя это не лучшее название.

IDE можно разделить на два типа: мультиплатформенные и нативные.

Мультиплатформенность — один проект для нескольких платформ.

Это такие IDE, как InstallAnywhere, InstallBuilder, InstallShield Multiplatform, Install4j. В таблице 1 указаны цены.

InstallAnywhere 2009 Enterprise/Standard Edition $4,499.00/$1,999.00 shop.flexerasoftware.com/product/fullproducts.asp
InstallBuilder Enterprise/Профессионал $1,995/ $1,395 installbuilder.bitrock.com/purchase.html
InstallShield Мультиплатформенный - Снято с производства.

Стандартная лицензия Install4j $1199 www.ej-technologies.com/buy/install4j/singleЭcurrency=USD
Родной — один проект для одного семейства платформ.

Чаще всего они пишутся для семейства Windows. Например, InstallShield 2010, InnoSetup, InstallAware и т. д. В таблице 2 указаны цены.

InstallShield 2010 Профессионал/Премьер $1,999.00/$3,999.00 shop.flexerasoftware.com/product/fullproducts.asp
Настройка Инно бесплатно www.jrsoftware.org/isinfo.php
InstallAvare Разработчик/Администратор студии $1499/$2999 www.cleverbridge.com/client/185/index.htmlЭstudio
Излишне говорить, что бесплатная и платная версии IDE отличаются как небо и земля.

Хотя это вовсе не требует усилий разработчиков ни того, ни другого.

Из цен можно сделать вывод, что монтажники стоят недешево.

Я уверен, что написать собственную IDE и создать на ее основе инсталлятор будет в разы дороже.



Ошибки установщика.

Начнем с Windows. 1. Большинство (и в случае с Adobe) установок для Windows производятся на основе Windows Installer (.

msi), он, как и любой другой продукт, имеет свои ошибки.

2. При разработке установщика используется IDE; как и любой другой продукт, он имеет свои ошибки.

3. Инсталлятор делает человек и он обязательно где-нибудь оставит пару багов.

Признаюсь, я делал это не раз.

4. лицензии есть, а это очень важный вопрос! Конечно не для всех :) Аналогичная ситуация и с мультиплатформенными установщиками.

Как видите, не все ошибки в установщиках указывают на разработчика.

Давайте рассмотрим в качестве примера пару ошибок InstallAnywhere 2008, так как я сейчас над этим работаю.

У меня версия Enterprise, она стоит около $4500 .

Это IDE для создания установщиков Java-проектов.

Хорошая новость в том, что при разработке установщика вы можете использовать Java в полной мере :) На рисунке показан пример стандартного диалога, и при вводе текста в IDE происходит прокрутка.

Где можно встать на грабли? Если в текст динамически вставляется какой-то путь и он очень длинный для пользователя, то такой баг может пройти мимо разработчика и тестировщиков.

У кого кривые руки? На разработчике установщика тоже есть доля вины.



Баги в установщиках.
</p><p>
 Где их нет?

Есть действия, которые не видны пользователю, они запускают .

bat файлы или что-то подобное.

Естественно, путь к .

bat-файлу необходимо заключать в кавычки в случае пробелов.

IDE явно удаляет последние кавычки при сохранении.

Можно брать грабли, если разработчикам и тестировщикам встречаются пути без пробелов, а у пользователя есть заветное место.

Если предыдущий баг был косметическим, то батник обязательно запустит что-то необходимое.

У кого кривые руки? На разработчике установщика тоже есть доля вины.

Существуют действия, которые запускают код разработчика, упакованный в файлы .

jar. Если файл .

jar имеет папку META-INF, код будет игнорироваться.

Довольно странно, но эта возможность описана в документации.

адское око напомнил баг о трудностях локализации.

На картинке перевод «Удаление завершено» вместо «Удалить полностью»

Баги в установщиках.
</p><p>
 Где их нет?

Серьезная ошибка, распространяющаяся от версии к версии в InstallAnywhere. Для записи установленного программного обеспечения используется файл .

xml; его можно найти так: «C:\Program Files\Zero G Registry\.

com.zerog.registry.xml».

Дело в том, что вход в этот реестр происходит после того, как пользователь нажал кнопку «ГОТОВО» в последнем диалоге установки/удаления, поэтому он может спокойно перезагрузить компьютер, запустить другой установщик или что-то подобное.

Самое обидное, что изменить такое поведение невозможно.

Проблемы, которые при этом возникают: 1. есть надпись, что программа установлена, но путь к ней пустой.

2. Получаем ошибку чтения файла, установщик тихо говорит "Хм, файл реестра какой-то кривой, сделаю новый" и создаёт его :) Чтобы исправить ситуацию, я несколько раз удалял этот файл на своей машине во время разработки и тестирования.

Вечный вопрос: что делать? Вести себя так, как будто ничего не произошло? Что делать, если службы крутятся, или они существуют, но не работают, или в проекте есть конфликтующие функции? Не все файлы копируются в каталог установки.

Здесь нет четкого ответа для разработчиков; нужно исходить из требований проекта и руководства.

Другой вопрос, почему для хранения данных об установленных программах в случае InstallAnywhere используется xml-файл или SQLite в случае Adobe? Это сделано для обеспечения единообразия интерфейса при установке на разных платформах.

Я более чем уверен, что проблема с установщиком продуктов Adobe упирается в вопросы, связанные с лицензией, внутренним конфликтом функций и компонентов или чем-то подобным.

И это не имеет ничего общего с профессионализмом разработчиков установщика.

Теги: #установщик #ошибки #adobe #InstallAnywhere #installshield #Chulan

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.