Як я можу пришвидшити встановлення та видалення пакету MSI?


14

Під час встановлення та видалення пакетів Windows Installer або файлів MSI, як їх називають, прогрес установки виявляється значно повільніше, ніж для інших інсталяційних пакетів.

Чому це так, і що я можу зробити, щоб прискорити справи ?


1
Що ви знаєте, я негайно визнаний голосом за спробу надання практичних та технічних порад від світу розгортання до світу системного управління. Порада в цій темі є як логічно, так і технічно обґрунтованою на час написання. Конструктивна критика вітається.
Штейн Есмул

Ви, по суті, написали статтю про деякі аспекти технології MSI. Це здорово, я думаю. Мені ніколи, як систематику, справді не потрібно було вирішити проблему "Моє встановлення програмного забезпечення настільки повільне".
mfinni

Це оновлена ​​відповідь на питання, яке я бачив кілька разів на цьому веб-сайті та інших сайтах обміну стеками.
Stein Åsmul

3
@mfinni - не означає, що це не на тему. На цьому сайті є багато проблем, які я не відчуваю.
Марк Хендерсон

Він запитував, чому він був знятий з голосу без коментарів. Я не голосував, але дав відповідь, що бачив як можливу причину.
mfinni

Відповіді:


15

Швидкий підсумок

  • Властивості, необхідні для швидкого налаштування:
    • MSIFASTINSTALL (спробуйте, можливо,3або7)
    • FASTOEM (подумайте двічі, треба прочитати документацію)
    • DISABLEROLLBACK (зрозумійте, що це означає, може призвести до того, що користувальницькі дії в пакеті MSI не запускаються! Це залежить від дизайну MSI - шукайте спеціальні дії для фіксації та відкату )
  • Програму безпеки можна призупинити, щоб пришвидшити встановлення.
    • Спробуйте відключити під час встановлення - скануйте свій інсталятор на virustotal.com .
  • Спробуйте запустити з адміністративного зображення ( альтернативна інформація ) (витяг файлу не потрібен).
    • Запуск з локального адміністративного образу був би найшвидшим.
    • Мережа з високою затримкою може сповільнити встановлення, якщо ви використовуєте адміністративний образ мережі?
      • Потенційно висока накладна на файл (невеликі файли).
      • Завантаження одного КБ може бути швидшим (перевірка вірусів тут може зайняти багато часу)?
  • Відновлення системи можна відключити глобально на машині (не лише за допомогою MSIFASTINSTALL).

Довідкова інформація

Значна частина повільності сеансу встановлення Windows пов'язана з його можливостями відкату . По-перше, він створює точку відновлення до встановлення чи видалення (за умови відновлення системи не було відключено). Тоді він створить резервну копію всіх постраждалих файлів та ключів реєстру під час видалення та встановлення, щоб гарантувати відновлення системи до початкового стану у разі виникнення помилки. Пізніші версії Windows Installer містять способи відключення деяких із цієї складності та пришвидшення роботи. Дивіться технічну інформацію нижче.

Ще одним фактором швидкості є те, що всі компоненти та функції в MSI будуть зареєстровані в реєстрі . Це пов'язано з великими витратами , але це необхідно для досягнення важливих корпоративних розгортань та переваг системного адміністрування . Жодна інша технологія розгортання не забезпечує цей рівень контролю.

Великим MSI-файлам із вбудованими вихідними файлами може знадобитися багато часу, щоб витягнути його інсталятор у папку temp. Іноді це може бути найбільшим вузьким місцем. Рекомендується запустити інсталяцію адміністратора, щоб витягнути вихідні файли з такого пакету, щоб вони з’являлися поруч із самим файлом MSI, що виключає необхідність витягати файли локально на кожній машині і, таким чином, економити час розгортання. Ось ще одна стаття, що описує вилучення файлів з пакетів MSI простими термінами .


Технічна інформація


ОНОВЛЕННЯ (лютий 2018): Ви можете встановити властивість під назвою FASTOEM за дуже особливих обставин (див. Пов'язаний вміст), щоб пришвидшити розгортання. Я ніколи цього не пробував, але це варто прочитати. Сумніваюся, вам вдасться ефективно використовувати його, але, можливо, варто спробувати.


Останнє оновлення до Інсталятора Windows на момент написання запису, Windows Installer 5 (доступний на Windows Server 2012, Windows 8, Windows Server 2008 R2 або Windows 7), має нову властивість MSIFASTINSTALL, яка може бути використана для прискорення встановлення великий пакет MSI . Дивіться посилання вище щодо дійсних значень. Я хотів би запропонувати 3 для НЕ точки відновлення , і тільки FileCosting (процес визначення вимог дискового простору). Або 7, щоб також зменшити частоту повідомлень про прогрес.

Звичайна " калькуляція " містить цілу низку порівнянь функцій, компонентів, дисків та реєстрів та розрахунків між тим, що існує в системі, і тим, що встановлюється. На мою думку, більшість цього рідко необхідна (місця на диску зазвичай є достатньо на клієнтських ПК - і в реальності 2018 року з меншими SD-дисками проблема простору може знову виникнути ...), але, очевидно, безпечніше пустити повну витратний цикл.

msiexec.exe / I "D: \ winzip112.msi" / QN MSIFASTINSTALL = 3

Також можна встановити властивість DISABLEROLLBACK для відключення підтримки відката в установці MSI. Я б настійно не радив використовувати це, якщо ви не влаштуєте новий ПК. Це особливий випадок, коли ви можете просто почати спочатку, якщо щось не вдається. Для комп'ютера в реальному використанні я б не рекомендував включати цю властивість.

Іронія полягає в тому, що вимкнення відката найбільше прискорить роботу, якщо ви користуєтеся величезним пакетом оновлень, який замінює багато файлів, або будь-яку велику видалення (оскільки при видаленні буде переміщено всі видалені файли до області відкату). Це може бути досить значним, але небезпечним. Ви просто встановили це властивість у командному рядку: msiexec.exe / I "D: \ winzip112.msi" / QN MSIFASTINSTALL = 3 DISABLEROLLBACK = 1

Адміністративна установка

І нарешті, як зазначено вище у довідковій інформації, запустіть адміністративну установку файлу MSI для вилучення файлів, щоб видобуток не відбувався локально на кожній машині. Це передбачає, що ви перебуваєте в досить швидкій мережі, і копія файлу відбувається без надто великої затримки. Я припускаю, що бездротова мережа з високою затримкою може зробити все повільніше, витягнувши невеликі файли, які потрібно копіювати по черзі. Ви запускаєте установку адміністратора, просто передаючи a / a у файл налаштування:

setup.exe / a

або

msiexec / a "D: \ winzip112.msi"

Потім потрібно дотримуватися підказок і вибрати місце вилучення файлів. Дивіться на superuser.com, щоб отримати інформацію про тему, про яку йдеться.


Деякі посилання :

Швидкість:


чи не так MSIFASTINSTALL? без ERхвоста.
n611x007

Я додав властивість MSIFASTINSTALL = 3 у свій проект Wix. Тим не менш, різниці в часі встановлення немає. <Ідентифікатор властивості = "MSIFASTINSTALL" Значення = "3" /> Чи я щось зробив не так?
Катір Субраманіам

1
Це в основному покращує час "зійти з місця" для MSI - створення точки відновлення системи може бути повільним. Це також допомагає розрахувати потреби в просторі, але сама реальна установка не набагато швидша. Зачекайте, поки я знайду ще одну відповідь, до якої я можу надіслати вам.
Stein Åsmul


Як бачите: жодної срібної кулі, але якісь виправлення можна зробити. Наскільки велика ваша установка?
Штейн Асмул
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.