Авторизация
Задай мне вопрос
Голосования
| Простейший инсталлятор своей программы используя InnoSetup |
|
| Written by xternalx | |
| Wednesday, 16 May 2007 00:00 | |
|
Каждый, кто хоть раз занимался разработкой собственного ПО, а так же выпуском патчей, обновлений, модификаций для каких либо программ рано или поздно сталкивался с проблемойраспространения своего шедевра ;) Первое что приходило на ум - взять какой нибудь архиватор, типа 7-zip и создать sfx архив. Дешево и сердито ;) Но что, если во время установки Вашей программы нужно произвести системные изменения, добавить запись в реестр, установить какой то компонент, произвести прочие манипуляции? Время идет, люди развиваются, технологии становятся все сложнее. Со временем, использование простого архиватора для своей программы становится не очень солидно, да и... ну Вы меня понимаете :D Я сам столкнулся с этой проблемой однажды. В качестве инсталлятора решил использовать программу InnoSetup. Связано это с простотой ее использования и гибкостью. Итак, начнем.после запуска IDE перед нами открывается простой текстовый редактор. Все, больше ничего здесь нет. Сначала меня это испугало. никакой визуальности, ужас, как здесь можно что то делать. Но время берет свое :D открываем Help, и начинаем изучать.... хотя подождите, эта статья призвана облегчить изучение азов создания инсталляторов на базе InnoSetup. Установочный скрипт состоит из секций, по своей структуре они очень похожи .ini файлы :D Список секций, которые мы будем использовать: [Setup] - базовая информация об инсталляцонном проекте [Messages] - выборочные пользовательские сообщения будут храниться здесь [Languages] - в этой секции сделаем наш инсталлятор полностью русскоязычным ;) [Files] - секция, в которой будут описаны файлы, используемые для создания инсталляции [Icons] - секция, отвечающая за создание иконок Ниже я приведу код своего инсталляционного проекта, а так же опишу значения всех ключей: [Setup] AppName=My Program - имя нашей инсталляции AppVerName=1.0 - версия DefaultGroupName=My Program - имя папки в меню Пуск/Все программы, в которой будут создаваться ярлыки программы OutputBaseFilename=MyProgramInstall - имя файла готового инсталлятора DefaultDirName=C:\Program files\My Program - предлагаемый установочный путь AppendDefaultDirName=false - не дописывать к выбранной директории последнюю папку из стандартного пути Compression=lzma - метод сжатия(рекомендую использовать именно lzma из за высокой степени сжатия ;)) OutputDir=. - скомпилированный .exe файл инсталлятора будет храниться в той же папке, в которой хранится установочный скрипт ;) Ну здесь вроде все понятно, двигаемся дальше. Теперь добавим некоторую уникальность нашего инсталлятора. Добавим имя нашей Компании - смотрим код ниже: [Messages] BeveledLabel=Powered by My Company Попытаюсь обьяснить что это значит и каков будет результат. Вы наверняка замечали в инсталляторах в нижнем левом углу слабо-заметные надписи типа InstallShield, или Made by SomeCompany. Приведенная выше строчка кода отвечает именно за этот результат ;) Теперь локализуем наш инсталлятор - т.е. сделаем его интерфейс полностью на русском языке путем добавления следующего кода: [Languages] Name: "ru"; MessagesFile: "compiler:Languages\Russian.isl" Name - служебный ключ, определяющий внутри программы имя используемого языка MessagesFile - собственно, ссылка на языковой файл. Обратите внимание, указанная директива compiler: означает, что файлы и папки, указанные после этой директивы находятся в одной директории с компилятором инсталляций, т.е. с IDE InnoSetup. Двигаемся дальше - добавляем файлы в наш проект. Сохраните Ваш проект, например, в папке C:\TestProj. В этой же папке создайте еще одну папку, назовите ее, например, source. Как Вы наверняка догадались, в ней будут лежать файлы, из которых будет компилироваться наш инсталл. Далее пишим такой код: [Files] Source: source\*; DestDir: {app}; Flags: recursesubdirs Source - отвечает за расположение исходных файлов. Файлы можно добавлять по маске, например, если бы мы написали source\*.txt, то в проект добавились только одни текстовые файлы. Кстати, если не указывать абсолютные пути до исходных файлов, как это сделано у нас, компилятор будет пытаться искать все указанные директории и файлы начиная с той папки, в которой сохранен проект(в нашем случае это C:\TestProj). DestDir - куда мы хотим установить указанные файлы. если Вы в качестве значения этого ключа укажете значение {app}, это будет значить, что файлы будут устанавливаться в указанную пользователем в процессе инсталляции папку. Flags - здесь мы указываем дополнительные опции добавления файлов. В нашем случае флаг только один - recursesubdirs - этот флаг проинструктирует компилятор, чтобы тот выполнил рекурсивный поиск файлов и папок в указанной директории Source. Ну и теперь последний штрих - создание ярлыков, иначе, что это за инсталлятор, который не умеет их создавать? ;) [Icons] Name: "{group}\Launch My Program"; Filename: "{app}\MyProg.exe" Name - местоположения и имя ярлыка для нашей программы. константа {group} означает, что ярлык будет создан в меню Пуск/Все программы, в папке, указанной в секции [Setup] в ключе DefaultGroupName. FileName - исходный файл, для которого будет создан ярлык. про константу {app} я писал чуть выше ;) Ну вот вроде бы и все, смело тыкаем кнопки Ctrl+F9 и ждем компиляции нашего персого инсталлятора ;)
|
|
| Last Updated on Thursday, 17 May 2007 09:18 |


Comments
RSS feed for comments to this post.