AzerEnergoAtom | Дата: Четверг, 12.02.09, 01:39 | Сообщение # 1 |
[ Администратор ]
Сообщений: 475
Зарегистрирован: 28.12.08
Пользователь #: 119
|
| Добрый вечер. Я очень часто сталкивался с различными пакетами, которые были запакованы установщиком NSIS. Как-то случайно (уже не помню где и когда) я наткнулся на компилятор НСИС. После поверхностного прочтения инструкции по эксплуатации (как правильно переводится Manual?), мне стало интересно: какой максимальный размер может иметь пакет? В инструкции написано, что более 2 гектаров, но никаких ограничений вроде бы нет. Но если их нет, зачем же тогда они написали там "более 2 Гб"? Может это отголосок FAT32? У меня много вопросов по этому установщику, но вот пока что главный меня интересует: какой может быть максимальный размер конечного исполняемого файла пакета может создать компилятор NSIS (2.0, пакет 2.09)? PS> Крутые возможности видны невооруженным взглядом. Компиляция из скриптов - это уже как минимум практически полный контроль над работой установщика. В описании вообще написано, что можно создавать свои собственные окна, не используя стандартные. Огромное количество секций, куча языков, интегрированные стили разных языков программирования (втиснутые в скрипт), всего 34 Кб весит рабочая структура пакета (то есть, те данные, которые, собственно, устанавливают файлы из пакета), LZMA сжатие и еще куча всяких интересных деталей! Короче, умеющим логически мыслить посвящается!!!
_______________________
You're never really done for, as long as you've got a good story and someone to tell it to. My ASRailRoad is my story...
| Offline |
|
|
Arpolice | Дата: Четверг, 12.02.09, 15:05 | Сообщение # 2 |
[ Администратор ]
Сообщений: 327
Зарегистрирован: 14.02.08
Пользователь #: 1
|
| Ничего конкретного по этому компилятору, увы сказать не могу, ибо пользуюсь InnoSetup.
_______________________
Спонсор этого сообщения ~ Клуб Железнодорожников
| Offline |
|
|
AzerEnergoAtom | Дата: Четверг, 12.02.09, 16:47 | Сообщение # 3 |
[ Администратор ]
Сообщений: 475
Зарегистрирован: 28.12.08
Пользователь #: 119
|
| Окей, давайте сравним компиляторы. Вот список возможностей NSIS: Quote - Generates self contained executable installers
- Support for ZLIB, BZIP2 and LZMA data compression (files can be compressed individually or together)
- Uninstall support (installer can generate an uninstaller)
- Customizable user interface (dialogs, fonts, backgrounds, icons, text, checkmarks, images etc.)
- Classic and Modern wizard interface
- Fully multilingual, support for multiple languages in one installer. More than 35 translations are available, but you can also create your own
- Page system: You can add standard wizard pages or custom pages
- User selection of installation components, tree for component selection
- Multiple install configurations (usually Minimal, Typical, Full), and custom configuration
- Installer self-verification using a CRC32 checksum
- Small overhead over compressed data size (34 KB with default options)
- Ability to display a license agreement in text or RTF format
- Ability to detect destination directory from the registry
- Easy to use plug-in system (lots of plug-ins for creation of custom dialogs, internet connections, HTTP downloading, file patching, Win32 API calls etc. are included)
- Installers can be as large as 2GB
- Optional silent mode for automated installations
- A preprocessor with support for defined symbols, macro's, conditional compilation, standard predefines
- A lovely coding experience with elements of PHP and assembly (includes user variables, a stack, real flow control, etc.)
- Installers have their own VMs that let you write code that can support:
- File extraction (with configurable overwrite parameters)
- File/directory copying, renaming, deletion, searching
- Plug-in DLL calling
- DLL/ActiveX control registration/deregistration
- Executable execution (shell execute and wait options)
- Shortcut creation
- Registry key reading/setting/enumerating/deleting
- INI file reading/writing
- Generic text file reading/writing
- Powerful string and integer manipulation
- Window finding based on class name or title
- User interface manipulation (font/text setting)
- Window message sending
- User interaction with message boxes or custom pages
- Branching, comparisons, etc.
- Error checking
- Reboot support, including delete or rename on reboot
- Installer behaviour commands (such as show/hide/wait/etc)
- User functions in script
- Callback functions for user actions
- Completely free for any use.
Попытаюсь перевести... : - Генерация самораспаковывающихся исполняемых пакетов.
- Поддержка сжатия алгоритмами ZLIB, BZIP2 и LZMA (файлы могут быть сжаты по отдельности или вместе)
- Поддержка деинсталлятора (инсталлятор генерирует деинсталлятор)
- Настраиваемый интерфейс пользователя (диалоговые окна, шрифты, заставки (фон), иконки, текст, сheckmarks, изображения и т.д.)
- Поддержка классического и современного (Modern) видов
- Многоязыковой, поддержка нескольких языков в одной инсталляторе. Доступны более 35 языков изначально, можно создавать собственные
- Система страниц: можно добавлять стандартные страницы и/или свои
- Поддержка выбора компонентов для установки, в виде дерева
- Многочисленные конфигурации установки (обычно Минимальная, Нормальная, Полная), а также собственные конфигурации
- Инсталляционный пакет производит самопроверку используя CRC32 контрольную сумму
- Маленький размер данных установщика (34 Kб при стандартных настройках)
- Возможность отображения лицензионного соглашения в текстовом или RTF форматах
- Возможность обнаружения пути установки из реестра
- Легко использовать систему модулей (plug-ins) - (большиство модулей для создания нестандартных диалоговых окон, подключения к Интернет, загрузка по HTTP, патчинг файлов, вызов функций Win32 API и пр. уже доступны)
- Пакет может быть больше 2 Гб.
- Возможность скрытой установки для автоматизированных приложений
- A preprocessor with support for defined symbols, macro's, conditional compilation, standard predefines (это для программеров, как правило)
- A lovely coding experience with elements of PHP and assembly (includes user variables, a stack, real flow control, etc.) (это тоже для них, крутые вещи: можно работать с переменными, стеком и т. д.)
- Готовые пакеты содержат в себе специальные собственные VMs (виртуальные машины), что позволяет писать код, который может поддерживать:
- Распаковка файлов (с настраиваемыми параметрами перезаписи)
- Копирование, переименовывание, удаление и поиск файлов/директорий
- Модульный вызов DLL (кул, пишешь свою ДЛЛку и потом вызываешь ее при установке, можно даже так игры писать :))
- Регистрация/Дерегистрация DLL/ActiveX
- Функции запуска исполняемых файлов (shell execute (запуск) and wait (ожидание завершения) options)
- Создание ярлыков
- Чтение, запись, перечисление и удаление ключей реестра
- Чтение/запись INI файлов (это тоже кул!)
- Чтение/запись простых текстовых файлов
- Мощный контроль над строками и численным переменными (string and integer)
- Поиск окон на основе имени класса или заголовка
- Контроль над пользовательским интерфейсом
- Window message sending (думаю, тоже для программеров в основном - не знаю, как перевести верно, но в WinAPI есть такие слова)
- Интерактивность пользователя с сообщениями и нестандартными страницами
- Branching, comparisons, etc. (?)
- Проверка на вшивость (то есть на ошибки)
- Поддержка перезапуска, включает в себя возможность переименовывания или удаления после перезагрузки
- Режим команд установщика (показать, спрятать, ждать и т. д.)
- Возможность предоставления пользователю создавать свои функции в скрипте (то есть во время установки)
- Функции возврата от действий пользователя
- Абсолютно бесплатная система для абсолютно любых целей!
Последний пункт имеет ссылку на лицензию, где сказано - можете использовать компилятор как угодно и где угодно, можете делать с ним все, что захотите, только с одним условием - не выдавайте его за свое изобретение и сохраняйте информацию о реальных авторах компилятора. К генерируемым им файлам это не относится и никаких ограничений вообще не существует! А что может InnoSetup?
_______________________
You're never really done for, as long as you've got a good story and someone to tell it to. My ASRailRoad is my story...
| Offline |
|
|
Arpolice | Дата: Пятница, 13.02.09, 17:52 | Сообщение # 4 |
[ Администратор ]
Сообщений: 327
Зарегистрирован: 14.02.08
Пользователь #: 1
|
| Может быть NSIS и многофункционален, но InnoSetup используют все разработчики MSTS РуНета. Для нашего пользователя этот установщик также будет очень удобным, да и я лично его уже освоил. Поэтому, переходить пока не намерен .
_______________________
Спонсор этого сообщения ~ Клуб Железнодорожников
| Offline |
|
|
AzerEnergoAtom | Дата: Пятница, 13.02.09, 20:56 | Сообщение # 5 |
[ Администратор ]
Сообщений: 475
Зарегистрирован: 28.12.08
Пользователь #: 119
|
| Quote (Arpolice) Может быть NSIS и многофункционален, но InnoSetup используют все разработчики MSTS РуНета. Для нашего пользователя этот установщик также будет очень удобным, да и я лично его уже освоил. Поэтому, переходить пока не намерен . Я не говорю, что нужно переходить! Я просто хочу понять, какие возможности по сравнению с НСИС имеет InnoSetup (да и вообще другие тоже, но в первую очередь тот установщик, которым пользуются для паковки МСТС аддонов). Понять мне это нужно для того, чтобы сейчас гарантировано знать заранее, что лучше использовать в будущем. Вчера почитал инфу по InnoSetup, его возможности. Надо сказать, что возможности у него гораздо меньше, но есть и некоторые плюсы перед НСИС (к примеру создание 64-битных пакетов). Правда в данном случае такая фишка - ненужный финт, зато НСИС предоставляет все - вплоть до BillBoards (кто не знает, это сменяющиеся картинки во время процесса установки). В InnoSetup такого, насколько я понял из списка его возможностей, нет. Но даже если есть, то НСИС может создавать билборды произвольного размера, причем каждый билборд может появляться на определенное время (задаваемое в скриптах). Методы компрессии у них практически одинаковы, у обоих присутствует LZMA алгоритм, так что конечный результат зависит от сложности скрипта. Тогда у меня следующий вопрос: возможно ли в InnoSetup создавать свои собственные окна, причем не используя стандартные? PS> Кстати, NSIS Modern UI практически идентичен внешнему виду InnoSetup, так что пользователи в этом плане ничего не заметят.
_______________________
You're never really done for, as long as you've got a good story and someone to tell it to. My ASRailRoad is my story...
| Offline |
|
|