Как уменьшить размер файла MSI размером 1 ГБ с помощью Orca?

Я написал приложение WPF на C #. Теперь я создал MSI, который установит приложение. Однако размер файла гигантский. Приложение содержит множество видеофайлов и файлов изображений, которые объединились, чтобы сделать MSI колоссальным размером 1 ГБ.

Я попытался уменьшить размер файла с помощью Orca. Я использовал «Сохранить как» для создания нового MSI, а также экспортировал таблицы базы данных, а затем импортировал их в другой MSI. В обоих случаях размер файла уменьшается до менее 1 МБ, но тогда программа установки вообще не работает. Похоже, он не сжимает содержимое, а полностью его удаляет.

Как я могу использовать Orca, чтобы уменьшить размер файла MSI, не останавливая фактическую работу установки? Если есть другой способ сделать это, я открыт для любых предложений.


person Ben    schedule 30.05.2019    source источник
comment
Что ж, если ваш MSI содержит файлы, его можно уменьшить, только избавившись от этих файлов. Видео и изображения обычно уже сжаты, поэтому сжатие MSI не уменьшает их размер. Вы могли только извлечь архив (ы) кабинета из файла MSI и положить его рядом.   -  person montonero    schedule 30.05.2019
comment
Что заставляет вас думать, что Orca может помочь вам справиться с размерами изображений и видео? По крайней мере, так я понимаю ваш вопрос ... Постарайтесь уменьшить размер ваших изображений и видео ... используйте для них более сильное сжатие (что, возможно, также может означать разные форматы / кодеки файлов изображений / видео)   -  person    schedule 30.05.2019
comment
@elgonzo Orca - единственный инструмент редактирования MSI, с которым я знаком, и я слышал, что его МОЖНО использовать для уменьшения размеров MSI, но мне не удалось найти много информации, объясняющей это дальше. Но, как я уже сказал в вопросе, я открыт для предложений, если есть другой способ сделать это. Orca - не единственное, что я хочу использовать.   -  person Ben    schedule 30.05.2019
comment
Я знаю, это звучит глупо, но поможет ли уменьшить размер файла msi и добавить дополнительный файл .cab с загрузкой в ​​нем? Я действительно не понимаю, чего вы пытаетесь достичь ... вы доставляете большие файлы ... у вас большой установщик.   -  person Señor CMasMas    schedule 30.05.2019


Ответы (2)


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

Если моя гипотеза верна, то ваша цель - найти оптимальное сжатие файлов в шкафах.

Примечание: если вы используете WiX Toolset для создания своего MSI, мы уже делаем уловки, чтобы гарантировать, что часть MSI будет как можно меньше. Вы вряд ли найдете существенные оптимизации сверху (и если вы это сделаете, сообщите нам об этом по адресу [email protected], мы будем рады улучшить :).

person Rob Mensching    schedule 30.05.2019
comment
Я не проверил, какой уровень сжатия по умолчанию для проектов WiX? Это сразу высокий? Думаю, я сам сделаю быстрый тест - разве вы не знаете что? - person Stein Åsmul; 30.05.2019
comment
IIRC, это mszip, что было разумным балансом в тот день. Но это основано на памяти. С тех пор были произведены оптимизации, так что сейчас я могу полностью ошибаться ... особенно для MediaTemplate (что довольно ново). - person Rob Mensching; 30.05.2019
comment
Если кто-то ошибается насчет MSI ... даже спустя много лет ... вероятно, это не вы @RobMensching :) - person Señor CMasMas; 30.05.2019
comment
Быстрое тестирование показало, что <MediaTemplate EmbedCab="yes" CompressionLevel="high" /> сжимается сильнее, чем когда для CompressionLevel ничего не определено. Другими словами, я предполагаю, что high включает сжатие LZX. Не уверены в побочных эффектах? - person Stein Åsmul; 30.05.2019

В Интернете. Можете ли вы выложить видео в Интернете? YouTube? Легче управлять и обновлять с течением времени. И более легкий доступ для людей, у которых не загружен ваш продукт? Лучше для маркетинга? Это зависит от того, является ли контент вспомогательным или реальным продуктом, который вы пытаетесь продать. Вы можете установить версии видео и изображений с низким разрешением в качестве резервного механизма, если Интернет недоступен? Может быть, посмотрите этот старый ответ?

Сжатие: вы используете WiX? Нет? При выборе инструмента MSI. Если вы используете WiX, то можете попробовать использовать highest compression level для MSI? (уровни сжатия MSI). Это означает, что вам нужно перестроить его с новыми настройками. Для этого есть альтернативные элементы:

WiX: в WiX легко установить уровень сжатия:

<MediaTemplate EmbedCab="yes" CompressionLevel="high" />

Небольшой ускоренный курс по минимальной разметке WiX для компиляции MSI можно найти здесь: Прозрачный алюминий! Разметка внизу с встроенных комментариев обычно достаточно, чтобы люди начали работу. См. Другие ресурсы здесь: installdude.com (мой собственный экспериментальный сайт - разверните раздел справки на левой панели навигации). Также проверьте "WiX Samples" в разделе быстрого поиска вверху.

Я забыл ответ с советами по быстрому запуску WiX.


Ссылки:

person Stein Åsmul    schedule 30.05.2019
comment
Я настоятельно рекомендую не использовать EmbedCab='yes', особенно в этом случае. Шкаф в MSI будет кэширован вместе с MSI (для целей удаления) и займет место на системном диске пользователя. Встроенные кабины для такого большого приложения особенно болезненны для пользователей. - person Rob Mensching; 30.05.2019
comment
С этим можно справиться, используя административные образы? По сути, это прославленное извлечение файлов из MSI, создающее образ сетевой установки. И вот статья о огромные кэшированные файлы и администрирующие образы, а также различные методы экономии места. - person Stein Åsmul; 30.05.2019
comment
Технически говоря, пользователь может создать админ-образ MSI на своем компьютере и установить MSI из этого образа. Но для этого потребуется довольно технический пользователь. По сути, это перекладывает проблему на пользователя, что мне кажется неправильным. - person Rob Mensching; 30.05.2019