Что именно делает установщик и зачем он мне нужен?

34

это наверное нубский вопрос дня:

Итак, я написал эту игру.

Теперь есть файл .exe, который выполняет эту работу, папка с моими красивыми и красивыми ресурсами, куча DLL-файлов и другие вещи, которые я, вероятно, не должен касаться. Чтобы запустить игру, я копирую всю партию на нужный компьютер, дважды щелкаю по файлу .exe и начинаю снимать некоторых парней. Ура!

Но какая именно разница между этим и использованием установщика? Что еще делает установщик помимо копирования файлов и выглядит более профессионально, чем .zip-файл? При попытке запуска игры на другом компьютере требуется много исправлений / настроек? Я проверил свою игру на всех компьютерах с Windows, на которых я мог бы держать свои жадные пальцы, и она прекрасно работает.

HumanCatfood
источник
1
Ну, например, в XNA вам нужна среда выполнения XNA. Или с SlimDX вам нужен SlimDX.dll внутри вашей игровой директории или в GAC.
Кикаймару
Хм, я это понимаю. Но те файлы .dll, которые мне нужны (в моем случае sdl.dll и его миньоны) уже находятся в том же каталоге, что и файл .exe, и они копируются, когда я копирую остальные. Что бы установщик сделал по-другому?
HumanCatfood
2
@Jan Конечный пользователь не должен беспокоиться о размещении файлов, а что нет. Это то, что делается для них.
Сидар
1
Есть о чем подумать - насколько «большая» ваша игра? Т.е. это маленький исполняемый файл в стиле инди, одна или две библиотеки DLL и несколько изображений, или это какая-то огромная вещь, которая требует всевозможной установки во время выполнения. Если это что-то относительно небольшое, exe-файл в zip-файле может быть достаточно хорошим и может помочь преодолеть нежелание пользователя устанавливать случайные игры, которые они могут захотеть удалить после пяти минут игры.
Пику
1
Говоря об установщиках ... что-то часто упускается из виду - хороший де- / деинсталлятор. Я потерял счет того, как часто мне приходилось удалять оставшиеся файлы и / или ключи реестра. Что особенно бесит, когда сказанное остается причиной проблем при переустановке игры.
Exilyth

Ответы:

34

Установщик, как правило, там, чтобы сделать вещи проще для конечного пользователя. Это делает некоторую комбинацию из следующего:

  • расстегивать
  • Создание каталогов
  • Установка необходимых сред выполнения (распространяемых как: .Net, Visual C ++, Direct x)
  • Регистрация в ОС (для последующего чистого удаления)
  • Покажите красивые, красивые скриншоты, чтобы подготовить игрока к игре, пока она работает.
  • Предлагая пользователю возможность зарегистрировать свою игру
  • Загрузка обновлений для ресурсов или патчей для игры
  • Добавьте значки в меню «Пуск» или на рабочий стол
  • Установите правильные разрешения для различных каталогов игры (временная папка, папка сохранения и т. Д.)
  • Просто установите его , позвольте пользователю бездумно нажимать «Далее» и приступайте к игре!
MichaelHouse
источник
Ах да, я не думал о том, что может потребоваться установить время выполнения. Спасибо!
HumanCatfood
2
Также не забудьте настроить права доступа к файлам! Ваша игра не может иметь права на запись в свою папку (для сохраненных игр и т. Д.), Если только установщик не установит ее.
Nevermind
10
+1 Большинству конечных пользователей неудобно даже разархивировать файл, поэтому установщик должен предложить разумный путь установки по умолчанию и «просто сделать это» для них. Многие конечные пользователи не знают, что такое файловая система или как найти файлы за пределами путей к документам по умолчанию, которые им представлены. И, честно говоря, какого чёрта им вообще нужно это знать? Думайте об инсталляторе как о магазине приложений для бедняков, чтобы начать играть, достаточно одного клика, не более.
Оскар Дювеборн
Ну, это действительно зависит от вашей целевой аудитории.
API-Beast
3
Я также добавил бы последовательность в список причин. Предоставляя установщик, вы гарантируете, что пользователь получит установку, совместимую с другими пользователями, в противном случае вы получите сумасшедшие вещи, например, кто-то разархивирует игру на свой рабочий стол и запустит ее оттуда (да, я видел, как это происходило). Использование согласованной и хорошо зарекомендовавшей себя установки устраняет множество проблем, которые могут пойти не так, и облегчает поиск и устранение неисправностей, когда что- то идет не так.
Максимус Минимус
3

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

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

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

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

Многие установщики в Windows предоставляют /eили /extractфлаг. например, setup.exe /eчтобы разрешить извлечение содержимого архива без установщика, запускающего скрипт установки. Мне недавно нужно было сделать именно это .

На пути к мобильности

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

( Я не знаю, сколько всего времени я потратил на установщиков, но это определенно порядка нескольких дней. )

Задачи, которые может выполнить установщик:

  • распаковка (часто с использованием экзотических архиваторов с высокой степенью сжатия)
  • обеспечение системных требований к оборудованию
  • обеспечение достаточного места на жестком диске
  • обеспечение требований времени выполнения программной платформы (например, «распространяемые»)
  • проверка обновлений программного обеспечения
  • загрузка программного обеспечения из удаленного хранилища
  • создание и / или обновление программных файлов и папок
  • создавать файлы конфигурации, записи реестра или переменные среды
  • установить драйверы программного обеспечения, подключить или отключить устройства
  • повысить доступность для обычных пользователей, объясняя шаги установки, создавая ссылки, ярлыки
  • продвигать собственное программное обеспечение через закладки и т.д ...
  • создать стимул для пользователя для фактического запуска программного обеспечения, представляя ключевые точки программного обеспечения во время установки, слайд за слайдом
  • создать дополнительный доход за счет программного обеспечения
  • настраивать модули ядра и автоматически запускаемые компоненты (например, демоны, windows-сервисы)
  • автоматическое исправление программного обеспечения
  • настройка папки, файла и прав доступа пользователя
  • создание идентификаторов GUID для связи программного обеспечения с конкретным экземпляром установки и, например, предотвращения переносимости

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

Лоренц Ло Зауэр
источник