2010-02-26 14 views
5

W systemie Windows 7 (tj. MSI 5.0) istnieje właściwość o nazwie MSIFASTINSTALL, która poprawi wydajność instalatora. Możesz też wyłączyć opcję wycofywania, ustawiając właściwość DISABLEROLLBACK. Ta właściwość jest również dostępna we wcześniejszej wersji MSI 5.0.Poprawa wydajności instalacji/deinstalacji Wix msi

Proszę podziel się swoją wiedzą, aby poprawić jakość instalacji. Ponadto nie mogę znaleźć właściwego sposobu na poprawę wydajności Odinstaluj. Używamy ogromnego zestawu plików/folderów (ponad 70 000) i komponentów takich jak 35000. Wisi on w procesie kalkulacji kosztów i nie wie, jak uniknąć tego opóźnienia. Jakiś czas wisi na więcej niż 2 lub 3 godziny odinstalować w maszynach XP lub Vista

Edit: zrobiłem jakiś hack, w moim zainstalować przez skompresowanie foldery, które ma ogromne zestawy plików i zmniejszenie rozmiaru komponentów jak Christopher powiedział . Poprawiło to wydajność drastycznie. tak oczywiście, straciłem wzorzec instalatora MSI, wykonując tę ​​koncepcję i nie jest to zalecane podejście. Jest to jednak korzystne, gdy chcemy to osiągnąć, a nasz użytkownik naprawdę nie chce mieć szczegółowych informacji o wersji pliku po odinstalowaniu/uaktualnieniu poprawek.

Odpowiedz

4

Miałem podobną sytuację, chociaż liczba plików była nieco mniejsza, około 25 tys. Większość tych plików to ikony, które nigdy nie zostały zmienione z jednej wersji na drugą. Tylko główne wydanie (raz na 2 lata) może przynieść pewne zmiany w tym obszarze. "Niebezpieczne rozwiązanie" polegało na zlepieniu tych ikon i dołączeniu tego pojedynczego pliku do instalacji (nie komponentu, tylko pliku obok MSI). Podczas instalacji ten ZIP został wyodrębniony w wątku tła, a tabela RemoveFile została użyta do usunięcia ikon podczas odinstalowywania. To było szybsze niż instalowanie tych ikon 20k jako oddzielnych komponentów, nawet jako komponentów z wieloma plikami. Dobrym i poprawnym rozwiązaniem było przekonanie głównych twórców aplikacji do umieszczenia wszystkich 20k ikon w 20 archiwach zip. Teraz te 20 plików zip jest instalowanych jako zwykłe składniki MSI, a aplikacja wie, jak wyodrębnić ikonę na żądanie i buforować ją.

Nie polecam wyłączania wycofywania. Mimo że zaoszczędzisz sporo czasu instalacji, stracisz standardową opcję wycofania gwarantowanego.

Odinstalowanie zajmuje więcej czasu niż instalacja z powodu funkcji wycofywania. Sposób, w jaki to rozumiem, po odinstalowaniu, MSI najpierw tworzy kopię każdego pojedynczego pliku, a następnie odinstalowuje każdy pojedynczy plik, a w przypadku sukcesu usuwa każdy zapisany plik. W związku z tym czas dezinstalacji jest około trzy razy dłuższy niż czas instalacji. Doświadczyłem tego samego problemu, gdy wziąłem opcję domyślną, aby mieć 1 plik na składnik. Chociaż jest to zalecane, powinieneś dokonać kompromisu, jeśli masz do czynienia z nierozstrzygniętą sprawą.

Mam nadzieję, że to trochę wyjaśni sprawy.

+0

Yan, naprawdę doceniam twoją odpowiedź, która wyjaśnia to lepiej. W moim przypadku opcja wycofywania nie jest konieczna i do tej pory nigdy nie spotkałem się z takim przypadkiem, że potrzebuję opcji wycofania. W każdym razie spróbuję wszystkich twoich sugestii. – sankar

+0

Czy możesz wyjaśnić, w jaki sposób możesz odinstalować buforowane pliki ikon? – sky

+0

Pliki plików buforowanych w tym przypadku są plikami, których Instalator Windows nie zainstalował i nic nie wie. Dlatego może to być zestaw elementów 'RemoveFile' /' RemoveFolder' lub akcja niestandardowa. Wolałbym pierwszy wariant. –

2

Najlepszą opcją poprawy wydajności aplikacji jest zmniejszenie liczby plików i komponentów. Chociaż może być kilka poprawek, które możesz wykonać w MSI, aby poprawić wydajność, nadmierna liczba plików/komponentów jest kluczowym problemem i będzie czynnikiem decydującym o poprawie wydajności. Dlaczego musisz instalować pliki 70k?

+0

Dzięki za odpowiedź. Postaram się zmniejszyć współczynnik składników, aby go zmniejszyć. Potrzebuję wysłać tak ogromną ilość plików i obrazów HTML w celach instruktażowych. – sankar

+2

Moja typowa instalacja zawiera około 15 000 plików i są to aplikacje klienckie. W branży gier bardzo łatwo jest znaleźć wiele zainstalowanych plików. Po stronie serwera (szczególnie aplikacje internetowe) bardzo łatwo jest dostać się do dziesiątek tysięcy. Kiedyś zauważyłem, że samo dodanie Infragistrics do klienta sieci dodaje 5 500 plików. Każdy, kto próbuje zawinąć aplikację internetową, może szybko wymyślić bardzo skomplikowane i masywne instalatory. Pomyśl o tym, że Microsoft oferuje "samoobsługową" witrynę MSDN. –