Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.08.28;
Скачать: [xml.tar.bz2];

Вниз

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

 
Санек ©   (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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.037 c
1-1123490231
W0lfX
2005-08-08 12:37
2005.08.28
Иконка для расширения


1-1123516131
TStas
2005-08-08 19:48
2005.08.28
Как быстрее, передать подпрограмме указатель на объект или ..


11-1106119944
Ajax
2005-01-19 10:32
2005.08.28
Default button


3-1121605921
Jet
2005-07-17 17:12
2005.08.28
Access - объединение двух баз


11-1106057807
Slay
2005-01-18 17:16
2005.08.28
Thread.OnDestroy





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский