2010-10-13 3 views
4

У меня есть WIX 3.0 инсталлятора, который строит 88 немного отличается строит (декартово произведение 32 и 64-бит, 11 районов, четыре издания (Beta, розничная торговля, оценки, разные оценки).Ускорения WIX компилирует

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

в результате MSI около 120MB. Я уже использовал CabCache.

установщик занимает около 3-5 минут на выпуск, чтобы построить, в результате чего довольно длительное время сборки.

Установка связана с жестким диском во время связывания (light.exe).

Очевидно, что сделать диски быстрее. Есть ли у кого-нибудь совет о том, как настроить машину, которая быстрее прокручивается через этих установщиков? (или рекомендации по реконфигурации моего проекта WIX для более эффективной сборки?)

ответ

0

Получить SSD. Как один из тех, у кого есть внутренняя архитектура RAID, например. OCZ. SSD - это обновление каждого разработчика за десятилетие. Плюс больше оперативной памяти, если проблема с обменом.

+0

Мне еще предстоит прочитать убедительный аргумент для SSD с компиляцией и связыванием в качестве цели для ускорения.Я вижу много разговоров о загрузке приложений быстрее. Но ничего об ускорении компиляции. Фактически, большинство людей говорят, что для времени компиляции практически нет никакой разницы. У вас есть опыт, который противоречит этим выводам? –

0

Если у вас есть общие части (которые не локализованы), вы можете создать модуль слияния с общими частями, а затем просто добавить разностный материал для каждой сборки.

+0

Спасибо за идею. Смешно, что я не думал об этом ... У меня есть модули слияния для вещей, которые отличаются друг от друга. Мне не приходило в голову, что создание модуля слияния для общих файлов будет иметь какое-то значение. Поскольку для этого потребуется некоторое перераспределение, я спрошу: действительно ли вы видели разницу во времени соединения с помощью модулей слияния. Я могу представить, что это работает, я также могу представить, что это мойка, в зависимости от реализации. –

+0

Похоже, что Роб Меншинг рекомендует использовать файлы .wixlib при использовании WIX вместо использования модулей слияния. Возможно, я попробую это сначала: http://robmensching.com/blog/posts/2008/10/10/What-are-.wixlibs-and-why-would-you-use-them –

+0

@Brian: Это было пару лет назад я это делал, главным образом, чтобы упростить поддержку wxs-файлов. Я не помню, каково влияние производительности, извините. –

0

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

Что касается вашего вопроса об ускорении сборки, это сложный вопрос. Используя модули слияния, я бы сразу исключил, так как я не вижу в этом никакого фактического выигрыша. Конечно, обновление аппаратного обеспечения (как вы сказали) даст некоторые результаты, но опять же, я не уверен, сколько прыжка вы бы сделали, поэтому трудно сказать, какую выгоду это даст. Я думаю, что лучше всего пройти через ваш WXS с помощью тонкой гребенки и посмотреть, что там происходит. Иногда вы можете найти вещи, оставшиеся от разработки пакета, или из предыдущего инструмента, который действительно замедляет вас. Одним из примеров может быть то, что моя компания недавно переключилась на WiX из более автоматизированной утилиты создания установки (оставляя имя по какой-либо причине, я перечисляю проблемы с ним: P), и он автоматически создает каждую папку под Windows, которая может понадобиться в запуск приложения Windows, а также папку общих файлов, текущий профиль пользователя и многое другое. Я думаю, что закончил стирать во всех 100 пустых каталогах, что эта старая технология была достаточно хороша, чтобы добавить для меня. Это всего лишь один пример оптимизации, который был сделан. Удивительно, что можно найти, когда вы тратите время, чтобы ДЕЙСТВИТЕЛЬНО рассмотреть, что происходит под капотом.

+0

Спасибо, что подумали об этом. К сожалению, языковые компоненты составляют около 50 МБ на язык. Установка всех из них (даже если большинство людей не нуждается в большинстве из них) приведет к дополнительному 500 МБ размера загрузки - таким образом, дифференциация. Таким образом, для бета-версии, оценки и внутренних тестовых версий Retail размер значителен. Тем не менее, для розничного продукта, распространяемого на компакт-диске, мы предлагаем пользователям выбор при установке и времени выполнения, какие языки использовать. Кроме того, на основе отзывов, полученных от разработчиков WIX, использование модулей слияния фактически ухудшает производительность соединения. –

0

В файле настройки wixproj добавить это только до конца файла в <PropertyGroup> теге

<IncrementalGet>true</IncrementalGet> 

Это покажет WIX компилировать только те файлы, которые изменились после предыдущей сборки.

+0

xml-теги должны быть выбраны в качестве кода (кнопка «10101010» в редакторе), иначе они будут удалены SO-форматированием. –

+0

Wow, я не вижу никакой документации нигде об этом - это новое в WiX 3.5? Откуда вы узнали об этом? –

+0

@Albin: Thanxs для редактирования кода @Brian: Я тоже искал что-то вроде того, что хотел 1 год назад, а затем, наконец, нашел этот тег. Это очень помогло мне. Вы пробовали это? –