Улучшение производительности установки / удаления Wix msi - PullRequest
5 голосов
/ 26 февраля 2010

В Windows 7 (т. Е. MSI 5.0) есть свойство под названием MSIFASTINSTALL , которое улучшит производительность вашего установщика. Или же вы можете отключить параметр отката, установив свойство DISABLEROLLBACK. Это свойство доступно и в более ранней версии MSI 5.0.

Пожалуйста, поделитесь своими знаниями, чтобы улучшить процесс установки. Кроме того, я не могу найти правильный способ улучшить производительность Uninstall. Мы используем огромный набор файлов / папок (более 70000) и таких компонентов, как 35000. Он зависает в процессе оценки стоимости файлов и не знает, как избежать этой задержки. Иногда он зависает более чем на 2 или 3 часа для удаления на машинах с XP или Vista

Edit: Я сделал хак в своей установке, сжав папки с огромными наборами файлов и уменьшив размер компонентов, как сказал Кристофер. Это значительно улучшило производительность. да, конечно, я потерял шаблон установщика MSI, выполнив эту концепцию, и это не рекомендуемый подход. Однако, когда мы хотим достичь этого, это компромисс, и наш пользователь действительно не хочет иметь информацию о версии файла при удалении / обновлении исправлений.

Ответы [ 2 ]

4 голосов
/ 27 февраля 2010

У меня была похожая ситуация, хотя количество файлов было немного меньше, около 25к. Большинство из этих файлов были иконками, которые никогда не менялись от одного выпуска к другому. Только основной выпуск (один раз в 2 года) может внести некоторые изменения в эту область. «Быстрое и грязное» решение заключалось в архивировании этих значков и включении этого единственного файла в установку (не компонента, а файла рядом с MSI). Во время установки этот ZIP был извлечен в фоновом потоке, а таблица RemoveFile использовалась для удаления значков при удалении. Это было быстрее, чем установка этих значков по 20 тыс. В качестве отдельных компонентов, даже как компонентов с большим количеством файлов. Хорошим и правильным решением было убедить разработчиков основных приложений поместить все эти значки по 20 тыс. В 20 zip-архивов. Теперь эти 20 zip-файлов установлены как обычные компоненты MSI, и приложение знает, как извлечь значок по требованию и кэшировать его.

Я бы не рекомендовал вам отключать откат. Хотя вы сэкономите довольно много времени на установку, вы потеряете стандартную гарантированную опцию отката.

Удаление занимает больше времени, чем установка из-за функции отката снова. Насколько я понимаю, при удалении MSI сначала создает копию каждого отдельного файла, затем удаляет каждый отдельный файл, а в случае успеха удаляет каждый резервный файл. Следовательно, время удаления примерно в три раза больше времени установки. У меня возникла та же проблема, когда я выбрал вариант по умолчанию для одного файла на компонент. Хотя это рекомендуется, вам следует пойти на компромисс, если вы имеете дело с неурегулированным делом.

Надеюсь, это немного прояснит для вас вещи.

2 голосов
/ 26 февраля 2010

Лучший вариант для повышения производительности вашего приложения - это уменьшение количества файлов и компонентов. Несмотря на то, что для улучшения производительности вы можете сделать несколько изменений в MSI, чрезмерное количество файлов / компонентов является основной проблемой и будет определяющим фактором для любых улучшений производительности, которые вы делаете. Зачем вам нужно устанавливать файлы 70К?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...