Способы уменьшения инсталляционного пакета

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
DDK
Обычный пользователь
Обычный пользователь
 
Сообщения: 80
Зарегистрирован: 10.11.2004 (Ср) 17:55
Откуда: Moscow ct.

Способы уменьшения инсталляционного пакета

Сообщение DDK » 29.06.2005 (Ср) 21:48

Написал вот тут пол года назад вот эту прогу: http://www.ramblerrc.narod.ru/about.html. Собственно с самого начала освоения VB меня бесило в нём то, что инсталлер занимает минимум 2 метра, а прога при это со всеми её патрахами порой весит менее 500кб. Да и люди смеются над этим казусом. Потом узнал, что инсталлер в этих 2 метрах содержит необходимые для работы VB-приложения компоненты. Но вот вопрос - а так ли они необходимы ? Например в моей проге используются только простейшие компоненты (радиокнопки, меню, селект-бокс и медиаплейер), которые винда уже содержит. Решил попробовать запустить прогу из рута без инсталла. И действительно - програма замечательно работала, единственное - визуальные парам. медиаплейера поплыли немного. Тестировал на ХР, и конечно же сам догадываюсь, что на 9х я такого хорошего результата не получу, но 9х платформами пока я могу пожертвовать, а точнее разборку с ними можно отложить на попозже. Думаю все поняли, чего я хочу и в чём я вижу проблему. Более того, знаю, что эта тема избита, засим не бейте меня... Жду ваших советов и примеров в вашем опыте !
Яндекс - найдётся всё. Google - найдёт всё, что не нашёл яндекс.

DDK
Обычный пользователь
Обычный пользователь
 
Сообщения: 80
Зарегистрирован: 10.11.2004 (Ср) 17:55
Откуда: Moscow ct.

А, и ещё

Сообщение DDK » 29.06.2005 (Ср) 21:57

И ещё забыл один вопрос, что бы не плодить ветки задам тут.
Использую в программе функцию Visible=True/False у главной формы как бы "спрятать" программу в трей. Но проблема в том, что при клике на значке в трее выполняется команда Visible=True, то окно программы может появиться "на заднем плане" если открыты ещё какие-то окна. Т.е. за всеми другими открытыми окнами. Можно ли это как-то исправить ?!
Яндекс - найдётся всё. Google - найдёт всё, что не нашёл яндекс.

Jenizix
Географ
Географ
Аватара пользователя
 
Сообщения: 545
Зарегистрирован: 20.04.2004 (Вт) 20:52
Откуда: Москва

Сообщение Jenizix » 29.06.2005 (Ср) 22:41

1. В XP имхо можно вообще без инсталла... если специфические контролы и библиотеки не юзаеш...
2. SetWindowPos()
Ушел в себя, вернусь не скоро...

Если вам нужно сделать прозрачной только форму, а контролы на ней нет, то вам сюда!!!

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 30.06.2005 (Чт) 2:05

Не иначе как PDW юзаешь? Забудь про этот архаизм, есть куча инсталляторов, в т.ч. и бесплатных. Конечно, далеко не все из них умеют сами парсить VBP-файлы на предмет зависимостей, но проект дистрибутива делается один раз, после чего изредка обновляется, так что нужный контрол можно и руками один раз добавить. Скажу за то, с чем работал сам:

Visual Studio Installer - замена PDW от Microsoft. Интегрируется в Студию, юзает (внутри себя) кое-что от PDW, но при этом генерит сетап в формате Windows Installer (.MSI). Дистриб получается гораздо меньше, выглядит гораздо красивее и ставится гораздо быстрее, более того, у тебя появляется возможность исключить из него произвольный компонент - в частности, VB-рантайм имеется по умолчанию на всех системах начиная с винтукея, так что его (самая тяжелая часть в твоем случае) можно спокойно убрать. У меня сетап немаленькой по коду проги без хелпа получался около 490 Кбайт, причем состоял из одного файла, а не из пяти, что тоже приятно. Качать здесь, 2 файла по 9 метров. Последние версии установочных модулей с компонентами лежат тут - SP5 и SP6. Оба чуть больше 6 метров.
Минусы - глюк с накоплением пустого места в файле проекта, неочевидное расположение ярлыков, создаваемых в меню Пуск, иногда кривит под XP (задумывался он под винтукей), иногда кривят под XP собранные им сетапы, иногда пропускает депы, иногда сетап по необъяснимой причине отказывается устанавливаться, мотивируя это своей побитостью (This file is not a valid Windows Installer package). В принципе, почти все обходимо.
Installer2Go - продукт отечественной конторы SDS Software из г. Королева, сайт - http://www.dev4pc.com. Создает все те же MSI-дистрибы, но не бесплатен (фриварная версия есть и работает, но вставляет в твой сетап рекламный баннер) и более функционален. Понятия не имеет ни об одном типе файлов проектов, т.о. позволяет собирать произвольный сетап (из VSI ты никогда не можешь исключить главный экзешник). Неплохо продуман, вполне достаточно документирован и очень прост в освоении.
Минусы - все приходится делать руками. Других недостатков я не заметил, хотя пользуюсь им уже больше года. По функциональности получаемых дистрибутивов значительно превосходит VSI, также имеет русскую локализацию, причем как интерфейса, так и сетапов. Рекомендую.

Вообще, я кидал Гайдару ссылку на один бесконечно полезный сайтец по этой теме, и он ее даже выложил в раздел Ссылки (или Избранное - как он там называется, сам не помню :) ), но вот только никто туда из задающих вопросы не лазает, видимо. Ссылка проста - http://www.appdeploy.com. И последнее: сборка и развертывание дистрибутивов в принципе - отдельная профессия, логистик. И весьма неплохо оплачиваемая (ну, в теории у нас, а на практике - у них). Конечно, это не повод бросать программирование, но это повод максимально серьезно относиться к процессу инсталляции - встречают по одежке, как всем известно.

Насчет второго: не надо так форму прятать, лучше использовать методы Show/Hide. Если не поможет - SetForegroundWindow().

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 30.06.2005 (Чт) 4:27

Не согласен с убиранием рантаймов, ибо рантайм SP6 отличается от рантайма SP0 :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 30.06.2005 (Чт) 7:22

GSerg писал(а):Не согласен с убиранием рантаймов, ибо рантайм SP6 отличается от рантайма SP0 :)


Угу. Но особенно весело корректно ставить ADO/Jet если учитывать что языки и операционки у пользователей разные - нужно запускать разные дистрибутивы (ибо они зависят как от языка, так и от операционки). Но и тут несложно разобраться, при желании, конечно.
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

Kovu
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 924
Зарегистрирован: 29.04.2005 (Пт) 17:38

Re: А, и ещё

Сообщение Kovu » 30.06.2005 (Чт) 8:21

DDK писал(а):И ещё забыл один вопрос, что бы не плодить ветки задам тут.
Использую в программе функцию Visible=True/False у главной формы как бы "спрятать" программу в трей. Но проблема в том, что при клике на значке в трее выполняется команда Visible=True, то окно программы может появиться "на заднем плане" если открыты ещё какие-то окна. Т.е. за всеми другими открытыми окнами. Можно ли это как-то исправить ?!

Можно ведь прятать форму и через Hide, а потом Show тогда фокус ей передается и без апи :D
Если всё делать своими ручками, они скоро отвалятся !

DDK
Обычный пользователь
Обычный пользователь
 
Сообщения: 80
Зарегистрирован: 10.11.2004 (Ср) 17:55
Откуда: Moscow ct.

Сообщение DDK » 30.06.2005 (Чт) 10:30

Всем огромнейшее спасибо ! Отдельное спасибо Ennor'у !

Kovu
Если не ошибаюсь, то в этом случае программа не убирается из панели задач... а это надо.
Яндекс - найдётся всё. Google - найдёт всё, что не нашёл яндекс.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 4

    TopList  
cron