2010-02-26 3 views
5

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

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

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

ответ

4

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

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

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

Надеюсь, что это немного облегчит вам кое-что.

+0

Ян, я очень ценю ваш ответ, что он делает меня более понятным в этой концепции. В моем случае опция отката не нужна, и до сих пор я никогда не встречал такого случая, когда мне нужен вариант отката. Во всяком случае, я попробую все ваши предложения. – sankar

+0

Можете ли вы объяснить, как удалить кешированные файлы значков? – sky

+0

Кэшированные файлы значков в этом случае - это файлы, которые установщик Windows не установил и ничего не знает. Следовательно, это может быть либо набор элементов «RemoveFile' /' RemoveFolder », либо пользовательское действие. Я бы предпочел первый вариант. –

2

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

+0

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

+2

В моей обычной установке есть около 15 000 файлов, и это клиентские приложения. В игровой индустрии очень легко получить множество файлов. На стороне сервера (особенно в веб-приложениях) очень легко попасть в десятки тысяч. Однажды я заметил, что просто добавление Infragistrics в веб-клиент добавило 5500+ файлов. Любой, кто пытается сжать упаковку веб-приложения, может быстро создать очень сложные и массовые установки размера. Подумайте о том, как Microsoft предлагает веб-сайт MSDN с самостоятельным размещением. –

Смежные вопросы