написание специального установщика пакета setup.exe

Мне было поручено создать установщик, который будет обрабатывать и устанавливать несколько файлов .msi. Я почти пошел по пути InstallShield, но вам нужна версия Premier для создания установок Suite, и сказать, что вы платите почти 3000 фунтов стерлингов, даже не позволит вам полностью настроить пользовательский интерфейс.

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

На данный момент у меня есть 2 основных варианта:

  • Используйте WiX - это бесплатно и, кажется, предлагает много возможностей настройки. Я еще не совсем уверен, что именно он может делать, и потребуется время, чтобы научиться.

  • Я могу расширить то, что у меня уже есть, и создать свой собственный установщик, который позволяет пользователю выбирать, какие функции / компоненты они хотят установить, а какие нет. Я бы предпочел это, если бы я мог заставить установщик загружать необходимые файлы msi с сервера, устанавливать их, а затем удалять их. Я просто не хочу включать отдельную папку, полную файлов msi, с основной загрузкой установки. Возможно ли это без СЛИШКОМ больших усилий? Кроме того, используя это, я смогу добавить одну программу в меню «Установка и удаление программ»?

Любые идеи приветствуются :)


person Ric Whitehead    schedule 24.08.2012    source источник
comment
Я хотел бы услышать больше о том, какую дополнительную настройку пользовательского интерфейса вы бы хотели получить от InstallShield. Некоторые из них могут быть возможны, но есть много пробелов, которые мы все еще пытаемся заполнить.   -  person Michael Urman    schedule 25.08.2012


Ответы (4)


Я бы порекомендовал проверить возможности Burn в WiX 3.6. Вы можете создать загрузчик, который может загружать ваши установочные пакеты с сервера. Вы можете полностью настроить его или использовать стандартное приложение-загрузчик. Вы также можете использовать ваш текущий .msis. Вам не нужно конвертировать весь ваш .msis в WiX, чтобы использовать функциональность загрузчика.

Я бы рекомендовал прочитать это сообщение в блоге Роба Меншинга.

person BryanJ    schedule 24.08.2012

Насколько это не требует усилий, зависит от сложности ваших настроек, взаимозависимостей и их предпосылок.

Например, вы хотите установить продукт X, но для этого требуется установленный сервер базы данных, для которого требуется обновление инфраструктуры .net, требующее перезагрузки ..

Wix предназначен для создания msi-файлов, поэтому это может помочь только в том случае, если вы хотите создать msi-файл, который может управлять установкой нескольких приложений.

person Tony Hopkinson    schedule 24.08.2012
comment
Основной особенностью WiX 3.6 является Burn, который является загрузчиком / цепочкой. - person BryanJ; 24.08.2012
comment
MSI не может (технически или должным образом) обрабатывать установку нескольких MSI из-за мьютексов, которые существуют в WindowsInstaller. - person Christopher Painter; 24.08.2012
comment
Они могут обрабатывать MSM, что, по сути, одно и то же, но ни один из них не предназначен для такого выбора. - person Tony Hopkinson; 25.08.2012
comment
Основная особенность Wix в том, что это не то, что вам могут дать инструменты для бинарного дерьма, такие как Wise. Как только у вас есть xml-файл, вы можете написать что-нибудь, чтобы с ним поиграться, и это просто вопрос того, насколько вы хотите сходить с ума с набором функций. - person Tony Hopkinson; 25.08.2012

WiX 3.6 все еще находится в стадии бета-тестирования, а Burn все еще находится в стадии разработки. По правде говоря, установщики InstallShield Suite довольно новые и все еще находятся в стадии разработки.

Прежде чем вы начнете волноваться из-за стоимости InstallShield, вам нужно точно решить, что должен делать ваш setup.exe. Затем вам нужно провести анализ пробелов в функциях между InstallShield и WiX и оценить трудозатраты на развертывание собственного, выполнение этого в WiX и выполнение в InstallShield.

В определенных ситуациях готовые инструменты недостаточно развиты, и имеет смысл попробовать свои собственные. (Подумайте, MS SQL Server, Office, Visual Studio), но для большинства бизнес-приложений вам, вероятно, просто нужно выбрать инструмент, который приблизит вас к тому месту, где вы должны быть.

person Christopher Painter    schedule 24.08.2012
comment
Разве я не проголосовал за вас, но я должен сказать, что как только вы выйдете (или, точнее говоря, должны выйти) за пределы одной из зон комфорта с этими инструментами, они превращаются в полный кошмар. Переломный момент для написания собственного установщика по сравнению с готовым IMO - насколько вероятны такие (или, что более вероятно, те) сценарии. - person Tony Hopkinson; 25.08.2012
comment
Я не могу согласиться. Я зарабатывал на жизнь монтажниками 16 лет и использовал практически все инструменты. Конечно, у InstallShield есть свои недостатки ... но в действительности большинство людей сталкиваются с проблемами, потому что не утруждают себя изучением основного установщика Windows (у которого также есть свои недостатки). В конце концов абстракции просачиваются, и все выходит из строя, и если вы не до конца понимаете, как это работает, вы в темноте пытаетесь это исправить. - person Christopher Painter; 25.08.2012
comment
В общем, когда вы действительно знаете эти вещи, вы будете удивлены, насколько ценен такой инструмент, как InstallShield. Например, я могу выполнить сложные установки, такие как установка нескольких экземпляров n-уровневого сервера asp.net / sql с полными настройками пользовательского интерфейса всего за несколько часов. Я много консультирую, и моя рабочая оценка обычно составляет 1/10 от моих коллег. - person Christopher Painter; 25.08.2012
comment
Не сбивать своего товарища по игре. Никто не был бы счастливее меня, если бы я мог передать проблемы с установкой кому-то другому. :( - person Tony Hopkinson; 25.08.2012
comment
Я имею в виду, что большинство людей, которые устанавливают, не специализируются на этом и не хотят этим заниматься. Затем они обвиняют инструмент, если он не работает. - person Christopher Painter; 26.08.2012

Для чего-то, что должно быть немного более профессиональным, чем ваш собственный setup.exe, с меньшей кривой обучения, чем WiX и Burn, и меньшей проблемой для вашего кошелька, чем InstallShield, - я бы посоветовал MSI Factory, не для MSI Factory (хотя это ускорит ваше обучение WiX), а для входящего в комплект загрузчика.

Кривая обучения меньше, чем у Burn, и есть 90-дневная пробная версия, чтобы вы могли увидеть, достаточно ли она для вас.

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

То, что вы сэкономите на первоначальных затратах с InstallShield, вы инвестируете с точки зрения времени с WiX - так что вам действительно нужно провести анализ затрат / выгод и выяснить, сколько стоит ваше время. InstallShield так же эффективен, как WiX, когда вы действительно начинаете понимать Windows Installer и то, что скрывается за ним. Многие коммерческие разработчики будут использовать элементы обоих в зависимости от индивидуальных требований проекта.

person saschabeaumont    schedule 25.08.2012