Программистам, которые на самом деле способствуют их продукты производству, нужен установщик. (упреждающее "программирование связало" выравнивание.)
Для развертывания нового пакета внутренних корпоративных приложений и сервисов, я пытаюсь решить между использованием WIX и выпуском InstallShield Express, который идет с Visual Studio 2010.
Я посмотрел, но не нашел матрицу функции, которая выделяет функции, которые не находятся в специальном выпуске. Я ожидаю, что WIX будет обычно довольно способным, но более трудным использовать, и услышал о ситуациях, что WIX не поддерживает хорошо.
Кто-либо нашел матрицу функции или имеет другие рекомендации на долгосрочном лучшем способе справиться с внутренним развертыванием?
Я считаю, что wix - отличный выбор (несмотря на очень крутой курс обучения), если вам нужно управлять установщиками в сложной среде, потому что
Почему формат XML является преимуществом: он позволяет вам в полной мере использовать системы управления версиями кода, такие как Subversion или Mercurial. Просматривать изменения, изучать историю или даже объединять изменения в разных ветках - это несложно. Сравните это с проектами installshield, которые представляют собой непрозрачные двоичные капли.
Что я имею в виду под управлением сложными зависимостями: в нашем случае у нас есть большой пул многократно используемых библиотек компонентов со сложным набором зависимостей между ними, а также множество приложений, которые были созданы поверх этого. До wix это был кошмар, когда где-то была введена новая зависимость: ВСЕ настройки нужно было обновлять.
Теперь с wix у нас есть ComponentGroup для каждой библиотеки, организованная в пару wixlib .Каждая группа компонентов ссылается на другие группы компонентов, от которых она зависит, с помощью ComponentGroupRef . Разработчикам установки приложения нужно только сослаться на группы компонентов с прямыми зависимостями, а wix сделает все остальное, следуя ссылкам. В результате для введения новой зависимости требуется только одно локальное изменение. Наши автоматизированные сборки и wix сделают все остальное, чтобы восстановить все настройки.
Матрицу функций для Install Shield можно найти здесь:
http://www.flexerasoftware.com/products/installshield/features.htm
Однако для раздела IIS (я предполагаю, что вам нужен IIS, основываясь на ссылке на мой предыдущий вопрос) все, что он говорит, является «Ограниченным». Вам решать, что означает Limited, но я уверен, что она не будет поддерживать развертывание на уровне предприятия.
InstallShield Express предназначен для базовых развертываний (это не что иное, как прославленный WinZip). Вы также можете проверить мой любимый AdvancedInstaller . У них также есть бесплатная экспресс-версия, но я думаю, что обе они вам не пригодятся, потому что, если вам нужно что-то делать с IIS, MS SQL, Active Directory, GAC и т. Д., Вам понадобятся версии корпоративного уровня. WiX бесплатен, но кривая обучения настолько крутая, что не стоит учиться. Я сожалею, что когда-либо узнал об этом.
Если вам это нужно только для внутреннего развертывания и вы не можете потратить 1000 долларов на программу установки, просто создайте свой собственный «установочный» проект с нуля. Пространство имен System.EnterpriseServices.Internal
содержит некоторые полезные оболочки для IIS, GAC и т. Д. System.Configuration.Install.ManagedInstallerClass
может помочь вам в развертывании служб Windows. Другими словами, вы можете создать свою собственную программу с нуля, которая сможет выполнить все необходимые шаги для развертывания вашего основного продукта. Многие компании не используют для своих флагманских продуктов коммерческие установщики, а делают свои собственные.