Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.08.28;
Скачать: CL | DM;

Вниз

Создание самораспаковывающегося файла   Найти похожие ветки 

 
Санек ©   (2005-08-08 10:35) [0]

Добрый день!

Возникла необходимость написать свой инсталлятор, все готовые варианты не подходят, ввиду того что инсталлятор устанавливает не программу в систему, а компоненты в уже установленную программу. Этих компонентов очень много, хоть они и будут разбиты по группам, все рано требуется создавать много инсталляций, и для удобства пользователя хотелось чтобы это было выполнено всё в удобном инсталляторе находящимся в одном файле.

Проблема в том, чтобы автоматизировать создание инсталяций, т.е. хотелось бы создавать *.exe файл автоматически (как это делают обычные инсталляторы или winrar например). В сети очень мало информации по этому вопросу, а если есть то на низком системном уровне, в чем я не очень силен. Изучение исходников InnoSetup никчему не привело уж очень много там всего лишненего.

Огромная просьба, может кто-то сталкивался с такой проблемой или знает где почитать, или есть чего в сорцах, черкните пожалуйста.

Заранее спасибо.


 
Anatoly Podgoretsky ©   (2005-08-08 10:43) [1]

Microsoft Installer


 
dmitry501 ©   (2005-08-08 10:44) [2]

Санек ©   (08.08.05 10:35)
Компилируешь все свои компоненты в ресурсы (.res), потом пишешь небольльшой GUI инсталлятор. Собираешь это все в один .exe файл.
Или как более универсальный вариант. Все свои компоненты с сохранением структуры папок жмешь в zip, и пишешь GUI, который просто распаковывает этот zip. Если хочешь один файл, а не два, то zip файл компилируешь в ресурсы.


 
Санек ©   (2005-08-08 11:08) [3]

Эт я понял, а можно ли как-то автоматически слепить в экзешник мой GUI и zip??? Скажем GUI инсталлятора не будет меняться, а данные zip будут сожержать и инструкции по инсталяции. Просто этих файлов инсталяции будет очень много и хотелось бы чтобы их могли делать человеки, которые и не подозревают, что есть такой замечательный продукт, как Delphi.

Насчет "Microsoft Installer", мне я понимая, это классная вещь, но всё что она позволяет, мне совершенно не нужно, не хоелось бы её использовать только для того, чтобы получать экзешник.


 
dmitry501 ©   (2005-08-08 11:58) [4]

А зачем один файл? Пусть будет два. Один постоянный, другой с апдейтами делают пользователи. Можно для этого сделать отдельную программу. Уже целый комплекс получается :)
Что значит "инструкции по инсталляции"? Нужно только копировать новые файлы, или еще что-то в реестр писать? В принципе, если все сложно, то не нужно изобретать велосипед с квадратными колесами, а использовать нормальный инсталлер с  развитым скриптовым языком, например [1].


 
Санек ©   (2005-08-08 12:04) [5]

Нет, наоброт ничего не нужно делать в системе... Нужно подключаться к БД и там выполнять кучу скриптов. Процесс апдейта сложный, поэтому хотелось писать его не на скриптах, а на Delphi.


 
dmitry501 ©   (2005-08-08 12:11) [6]

Кхм... А БД какая? Во многих есть встроенные средства, которые делают эту задачу- ведь это миграция данных?
И это несколько не согласуется с [0]


 
Санек ©   (2005-08-08 12:27) [7]

БД, может быть любая. История такая... В программе есть модуль, который умеет загружать/сохранять в БД объекты программы, модуль использует интерфейсы различных СУБД. Инсталляция компонентов (набор объектов) хотелось бы реализовать через этот модуль. GUI исталлятора будет взаимодействовать с этим модулем на уровне объектов программы + свои функции (выбор устанавливаемых компонентов, выбор баз данных). Инсталляция самой программы уже давно написана на InnoSetup, с вызовом фунций для создания серверных объектов. Как бы реализовать установку компонентов, вот вопрос??? В принципе если GUI и данные установки разные файлы, всё понятно. Если создание экзешника сложная вешь, то так и сделаю. Но всё же хотелось сделать "красиво".


 
dmitry501 ©   (2005-08-08 12:39) [8]

Так я и не понял вопрос. Если нужно просто объеденить GUI и ресурсы - http://delphiworld.narod.ru/base/save_and_load_resources.html
Интересно, что же такое "объекты программы" физически?


 
Санек ©   (2005-08-08 12:46) [9]

Это классы, сожержащие методы работы с данными и сами данные, данные храняться в БД. Чтение и запись данных объекта осуществляется через модуль, который поддерживает интерфейсы нескольких БД.


 
dmitry501 ©   (2005-08-08 12:50) [10]

Классы в виде исходного кода? А язык - интерпретатор? Или в виде файлов - .dll .bpl и пр.?


 
Санек ©   (2005-08-08 12:50) [11]

В принципе можно делать так:

1. Создать GUI, скомпилировать в DCU
2. Создать ресурс, самой инсталляции
3. Компилить всё это с помощью DCC32.EXE


 
Санек ©   (2005-08-08 12:52) [12]

виде файлов - .dll .bpl + данные в БД


 
dmitry501 ©   (2005-08-08 12:54) [13]

Санек ©   (08.08.05 12:50) [11]
Ну дык, ты бы с самого начала простым языком написал, что нужно :)
<OFFTOP>Ладно, извини, рабочий день кончился, домой тороплюсь....</OFFTOP>


 
Slym ©   (2005-08-08 13:56) [14]

На основе обновление DrWeb
1. GUI приложение анализирует файл (Updates.txt)
Updates.txt - формата
+filename - добавить файл
-filename - удалить файл
!filename - выполнить файл
2. файл (например ZIP) с обновлениями и Файлом Updates.txt.

Как работает:
1. Прога распаковывает архив
2. Читается Updates.txt
3. Выполняются бействия из Updates.txt



Страницы: 1 вся ветка

Текущий архив: 2005.08.28;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.025 c
1-1123276018
Tihinen
2005-08-06 01:06
2005.08.28
Access Violation при возврате из функции


1-1123166385
КодеКорешь
2005-08-04 18:39
2005.08.28
Аналог ShowMessage


6-1116262547
Opryshok
2005-05-16 20:55
2005.08.28
TWebBrowser и *.doc


4-1121231982
Jupiter
2005-07-13 09:19
2005.08.28
Архивация с помощью ARJ


8-1113732159
lifo
2005-04-17 14:02
2005.08.28
аудиопоток