лучший подход среди EXE и MSI - PullRequest
4 голосов
/ 02 июня 2011

У меня есть приложение, которое необходимо доставить в виде пакета.

  1. Каковы лучшие среди установщиков EXE и MSI и почему?
  2. Существует ли какой-либо инструмент с открытым исходным кодом для декомпиляции EXE или MSI?

Ответы [ 6 ]

5 голосов
/ 02 июня 2011

Это зависит от того, о каком EXE-файле вы говорите.

MSI - это установочный пакет, который запускается установщиком Windows.Если вы делаете установочный проект с Visual Studio, он предоставит вам MSI и EXE.EXE в этом случае просто загрузчик (MSI или EXE) .Он будет запускать MSI после проверки наличия установщика Windows.

Если вы используете другие инструменты, такие как InnoSetup, этот EXE-файл сам по себе является установочным пакетом, а не загрузчиком.

Относительно вашего вопроса оMSI редактор: Orca MSI Editor .

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

3 голосов
/ 02 июня 2011

Многие установщики в наши дни используют MSI внутри, хотя они распространяются как EXE.Вам необходим EXE-файл, чтобы убедиться, что установлены все необходимые компоненты: .NET Framework, например;и он устанавливает предпосылки, если они не.Затем он извлекает пакет MSI, который обрабатывает остальную часть установки.

MSI предоставляет некоторые расширенные функции установки:

  • поддержка отката : если во время установки произошел сбой, он возвращает систему в состояние до начала установки.
  • repair : если ваше приложение перестало работать правильно, пользователи могут использовать эту функцию для переустановки приложения.Восстанавливает отсутствующие файлы, записи реестра.
  • обновления / обновления : MSI обрабатывает обновления / обновления приложений.Пакет MSI может быть автоматически настроен на предыдущую версию приложения, когда пользователь начинает установку более новой версии.Это происходит прозрачно для пользователя: похоже, что установлена ​​только новая версия.
  • patchs : MSI поддерживает исправления.Если изменены только несколько файлов вашего приложения, вы можете обновить их с помощью пакета исправлений (MSP).Патч будет меньше, чем полный пакет.
  • объявленные ярлыки : вы можете разрешить пользователям не устанавливать некоторые функции вашего приложения, если они не используются.Когда пользователи получают доступ к такой функции, MSI устанавливает необходимые файлы.

Хотя для изучения этой технологии требуется некоторое время.


Вы можете сделать что-нибудь из файла EXE,в то время как MSI только для установки. Inno Setup и NSIS Установочные пакеты распространяются в виде exe-файлов.У них есть язык сценариев, который описывает шаги установки.


Набор инструментов WiX имеет декомпилятор MSI с именем dark.

2 голосов
/ 16 июня 2011

Я опубликовал сводку некоторых преимуществ (и проблем) MSI на serverfault.com:

https://serverfault.com/questions/11670/advantages-of-using-msi-files

2 голосов
/ 02 июня 2011
1 голос
/ 02 июня 2011

Вы можете просто сказать Visual Studio превратить ваше приложение в MSI / EXE.Если это работает и делает то, что вы хотите, просто сделайте это.Создание вашего установщика требует от вас больших усилий.

MSI означает, что вы используете установщик Microsoft.У Microsoft есть законные основания рекомендовать (т.е. не предоставлять сертификацию вашего приложения) MSI.Тем не менее, хороший MSI сложно создать, поэтому я не рекомендую его, если вам не нужно сертифицировать приложение.

Если вам не требуется сертификация, я рекомендую Inno Setup вместе с интерфейсом вроде ISTool .Он прост в использовании и предоставляет простые интерфейсы для выполнения наиболее распространенных задач установщика.В крайнем случае, он поддерживает скрипты, позволяющие вам делать все, что он не поддерживает.

1 голос
/ 02 июня 2011

MSI - установщик Microsoft, он более новый, чем более старый EXE, Wise Installer и многие другие его поддерживают. Он позволяет выполнять более разумную установку с тем, что необходимо развернуть (например, CAB-файлы, параметры реестра и т. Д.), И может проверять предыдущие установки и т. Д.

MSI - ТОЛЬКО установки, в то время как EXE может выполнять другие функции, такие как run.

Я бы использовал InstallShield и собрал MSI

Я не уверен насчет # 2

...