Как сделать действительно хороший установщик, такой как Visual Studio? - PullRequest
9 голосов
/ 13 июля 2010

Из чего сделаны установщики, такие как установщик для Visual Studio?Как они делают такой хороший опыт установки?Я знаю, что InstallShield может эмулировать это, но Visual Studio использует InstallShield или InstallShield скопировал его?

Ответы [ 2 ]

10 голосов
/ 13 июля 2010

Установка для Microsoft Office 2007 (и, вероятно, 2010) была построена поверх WiX ( source ).Обратите внимание, что это не означает, что вы можете эмулировать настройки Office 2007 самостоятельно, используя чисто WiX.

Помимо того, что вы на самом деле видите - MicrosoftOffice, Visual Studio или любое другое приложение, предназначенное для корпоративного развертывания, использует технологию Windows Installer .Вы можете использовать Installshield , WiX или ряд других программных продуктов для достижения того же конечного результата.

ОДНАКО обратите внимание, что Office, VisualStudio и целый ряд других установок используют установщик Windows (MSI) без использования интерфейса установщика Windows (UX).Одной из замечательных особенностей установщика Windows является то, что вы можете создать свой собственный внешний обработчик пользовательского интерфейса , чтобы "видимые" вещи выглядели так, как вы хотите, при этом используя Windows Installer и MSI за кулисами (Office устанавливает и настраивает)множество пакетов MSI, пока пользователь выглядит как единый процесс установки.

Как правило, вы будете разрабатывать свой UX для настройки в собственном коде, в идеале с минимальными зависимостями (например, без управляемых языков и, если возможно, с более старыми библиотеками. Пользователиможет не иметь зависимостей VS2005 / 2008 при первом запуске программы установки, поэтому целевой RTM не SP1).К сожалению, это не простой мастер или библиотека, от которых вы можете зависеть, это эффективная разработка небольшого автономного приложения с нуля на языке, с которым вы можете или не можете быть знакомы (разработчиков на родном коде становится все сложнее и сложнее найти, управлять ими).код чаще всего проникает в настройку, потому что он «проще»).

tl; dr - выполнение части, не связанной с пользовательским интерфейсом, является решенной проблемой, используйте технологию установщика Windows (например, WiX).Пользовательский интерфейс потребует пользовательской разработки, вероятно, в собственном коде C ++.

3 голосов
/ 13 июля 2010

Я верю VS использует WiX. Не уверен, хотя. В Microsoft существует движение за стандартизацию WiX (например, он используется для сложных установщиков Office), но я не уверен на 100%, была ли VS преобразована.

...