Вопрос

Я более или менее просто программист-любитель и вырос в плане программирования в мире .NET ClickOnce.

Что на самом деле происходит, когда кто-то «устанавливает» программу?!

Также:Некоторые небольшие приложения/инструменты просто запускаются из exe.Почему большинству программ требуется сложный процесс установки?Каковы преимущества, недостатки, плюсы и минусы?Является ли установка обычно необходимой или это скорее стандартная практика?

Извиняюсь за лишние вопросы.Я просто надеюсь на более или менее непрофессиональное объяснение ключевых факторов на простом английском языке.

Это было полезно?

Решение

На самом деле вы видите множество причин, связанных с наследием, которые стали стандартной практикой в ​​мире Windows.

Во-первых, некоторый контраст, потому что так бывает не всегда.«Приложение» в Mac OS X — это просто каталог с определенной структурой внутри, названный с помощью .app расширение.Установить приложение так же просто, как перетащить его (только значок приложения) в папку «Приложения», а для удаления потребуется перетащить его в корзину.Вот и все, никакого сложного установщика (обычно) не требуется.

В Windows приложения обычно состоят из независимых компонентов, которые необходимо «зарегистрировать».Это предполагает, что программа установки записывает некоторые фрагменты в реестр Windows, чтобы сообщить Windows, где найти компоненты.Да, приложение, вероятно, должно знать, где их найти (поскольку все они установлены в одном и том же месте), но годы наследия и различные способы подключения компонентов привели нас туда, где мы находимся сегодня.

Обычно программа установки в Windows:

  • копирует файлы
  • регистрирует компоненты
  • устанавливает разрешения безопасности (если применимо)
  • добавляет значки в меню «Пуск» и/или на рабочий стол
  • записывает в реестр дополнительные данные, чтобы сообщить Windows добавить программу в «Установку и удаление программ».

Другие советы

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

  • Изменение произвольных ключей в реестре, пока он не станет медленным и полным неработающих записей.
  • Замена DLL единственной древней версией, которую может использовать ваше программное обеспечение.
  • Распространение как можно большего количества файлов в максимально возможном количестве мест.
  • Создание сценария удаления для поддержания иллюзии, что пользователь может избавиться от программного обеспечения без переустановки ОС.В том маловероятном случае, когда пользователь попытается запустить этот сценарий, вы можете научить его/ее никогда больше не делать этого, задавая вопросы типа «Файл....может использоваться другими приложениями.Вы действительно хотите удалить его?Да/Нет/Может быть/Любой ответ/Все ответы верны»
  • Установка перехватчиков в непонятных местах, чтобы ваше программное обеспечение запускалось при загрузке компьютера.Это может замедлить процесс загрузки, но ваше программное обеспечение запустится мгновенно, так что это небольшая цена...для тебя.
  • Делаете непонятные вещи, которые занимают много времени, но никто не может сказать, что вы делаете (что делает «Программа установки готовит установку» в течение 15 минут?)
  • Проверяем, достаточно ли места на диске, но используйте 32-битные целые числа, чтобы убедиться, что его нельзя установить на диски емкостью 1 ТБ.
  • Важной задачей является сбой при установке и вывод ошибки:"Установка не удалась.Возможно, это связано с тем, что установлено антивирусное программное обеспечение.Пожалуйста, деактивируйте его и повторите попытку». Это гарантирует, что пользователи начнут не доверять своему антивирусу (особенно, если установка завершится успешно во время второго запуска, поскольку неявные ошибки в установщике не были вызваны), и многие из них будут забудьте снова включить антивирусный сканер или вообще удалить эту чертову штуку.

    Авторы вирусов во всем мире тоже люди!Спам покрывает большую часть интернет-трафика, что должно означать, что это важно, и кто не хотел бы быть частью самого большого сообщества на земле?Более того, таким образом можно заработать большие деньги.Все, что вам нужно, это слабая совесть и/или какая-то криминальная энергия.

  • Очень важной частью вашего установщика является увеличение ключа реестра. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-7-9-23-64738-1349283462-3754093625-4491\IsYourWindowWideEnough\NotGivenUpYetHuh\GoAway\ImportantSystemInformation\Let See How You Can Handle Spaces\DamnIGottaStopSincePathsCanHaveOnl\ReinstalCtr

    Этот важный системный счетчик поможет создать у пользователя иллюзию нестабильности до тех пор, пока он не почувствует сильное желание переустановить всю систему.Это поможет профессиональной ИТ-индустрии продавать часы поддержки, продавать новые компьютеры, больше оперативной памяти, жесткие диски большего размера или новые версии Windows (они должен будь лучше, правда?).

Примечание:Если вы серьезно относитесь к этому тексту, обратитесь за профессиональной помощью.

Причины использования «необычного» процесс установки

<Ол>
  • чтобы записать процесс установки так что это может быть воспроизведено (ремонт) или отменить (удалить)
  • для выполнения действий простого копирования файла (создания разделов реестра, регистрации компонентов, выполнения других произвольных действий
  • " стандарт " параметр в большинстве установок будет иметь "все биты, которые обычно требуются, в стандартном месте, например, Program Files" установка без настройки, возможно, без включения некоторых функций экспертного уровня.

    Википедия сообщает нам что типичный установщик создает или изменяет следующее:

    • Общие и частные программные файлы
    • Папки/каталоги
    • Записи реестра Windows (только Windows)
    • Записи файла конфигурации
    • Переменные среды
    • Ссылки или ярлыки

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

    Зависит от программы, которую вы устанавливаете. & Quot; Установка " может варьироваться от простого копирования (относительно небольшого) исполняемого файла в каталог до настройки общих библиотек, выполнения проверок уровня исправлений (я предназначен для работы на SP2 или выше - у меня SP2 или выше?) и изменения конфигурации системы, либо для текущего пользователя или для всех пользователей. Большинство из них также регистрируют установку с помощью менеджера пакетов, чтобы вы могли легко удалить ее позже.

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

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

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

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

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

    Изменения в мышлении

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

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

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

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

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

    Лицензировано под: CC-BY-SA с атрибуция
    Не связан с StackOverflow
    scroll top