Базовый MSI :
Это стандартный тип установки. Он использует установщик Windows почти для всех установок (предварительные требования, выбор языка и некоторые другие функции выполняются программой setup.exe). MSI - это база данных с множеством таблиц, которые описывают, как работает установка. Поначалу количество таблиц может быть немного подавляющим, но InstallShield хорошо его абстрагирует; в большинстве случаев вам не нужно напрямую редактировать таблицы базы данных.
Это наиболее распространенный тип установки, поэтому о нем доступно много информации. Форум InstallShield является отличным источником информации. Кроме того, многие установки используют MSI, поэтому, если вы их понимаете, вам будет легче понять, что делают другие установки (например, если вам нужно установить MSI другого производителя как часть вашей установки). Тихая установка может быть легко выполнена с помощью аргумента командной строки.
К сожалению, поскольку MSI контролирует установку с помощью таблиц базы данных, существует некоторая кривая обучения. Если вам в конечном итоге придется непосредственно редактировать таблицы MSI, это может сначала сбить с толку, поскольку существует много таблиц, и некоторые из их целей и взаимодействий едва различимы. Кроме того, создавать и упорядочивать диалоги в MSI сложнее, поскольку все взаимодействия должны контролироваться таблицами. Пользовательские диалоги MSI могут быть созданы, но только в C ++.
Я бы рекомендовал этот тип проекта для большинства применений.
InstallScript
В этих проектах для установки программного обеспечения вместо установщика Windows используется сценарий установки. Поскольку установочный скрипт является линейной программой, может быть проще понять, как он работает. Одним из преимуществ этого типа проекта является то, что создавать и упорядочивать диалоги проще. Кроме того, диалоги InstallScript могут быть оформлены и выглядят немного лучше, чем диалоги MSI. Запуск автоматической установки требует отдельного «файла ответов» для управления пользовательским интерфейсом. Я бы не рекомендовал использовать этот тип проекта, если у вас нет особых причин (например, если вам нужно очень точно контролировать поведение установки способом, не поддерживаемым MSI).
InstallScript MSI :
По сути, это базовый проект MSI, который использует InstallScript для управления пользовательским интерфейсом и MSI для управления реальной установкой. Преимущество использования MSI для управления установкой, но работа с диалогами проще. Для управления пользовательским интерфейсом во время установки без вывода сообщений по-прежнему требуется файл ответов. Если вам не нужны установки без вывода сообщений или сложная диалоговая последовательность пользовательского интерфейса, этот тип проекта может оказаться полезным.