Windows Installer
Windows Installer (Instalator Windows, uprzednio znany jako Microsoft Installer)[1] – program służący do instalacji, konserwacji i usuwania programów na nowszych systemach Microsoft Windows. Informacje instalacji i często same pliki są umieszczane w pakietach instalacyjnych, luźnych relacyjnych bazach danych o strukturze OLE Structured Storage Files, częściej określanych jako „pliki MSI”, od ich domyślnego rozszerzenia. Windows Installer niesie ze sobą znaczące zmiany od swojego poprzednika, Setup API. Nowe funkcje to framework GUI oraz automatyczne generowanie sekwencji dezinstalacji. Windows Installer jest alternatywą dla frameworków instalacyjnych opierających się na pojedynczym pliku wykonywalnym, takim jak starsze wersje InstallShield i Wise (późniejsze wersje tych produktów oparte są na Windows Installerze) i NSIS.
Autor | Microsoft |
---|---|
Aktualna wersja stabilna | 5.0 |
System operacyjny | Microsoft Windows |
Rodzaj | instalator |
Licencja | własnościowa |
Strona internetowa |
Microsoft zachęca firmy do używania Windows Installer jako podstawy ich szkieletów instalacyjnych, tak żeby mogły poprawnie synchronizować się z innymi instalatorami i utrzymywać wewnętrzną bazę zainstalowanych produktów spójną. Ważne funkcje, jak wycofywanie zmian i wersjonowanie zależą od spójności wewnętrznej bazy.
Logiczna struktura pakietów
edytujPakiet opisuje instalację jednego lub więcej pełnych produktów (Windows Installer nie zarządza zależnościami między produktami) i jest opisywany przez GUID (własność PackageCode). Produkt jest złożony z komponentów, pogrupowanych w funkcje.
Produkty
edytujPojedynczy, zainstalowany, działający program (lub zestaw programów) jest produktem. Produkt jest identyfikowany przez unikatowy GUID. Produkt nie jest tym samym czym pakiet – jeden pakiet MSI może instalować więcej różnych produktów. Na przykład MSI może instalować wersję polską i angielską tego samego programu, z których każda jest innym programem.
Komponenty
edytujKomponent to najmniejsza część produktu – każdy komponent jest traktowany przez Windows Installer jako jednostka – twórca pakietu nie może, na przykład, pod pewnym warunkiem określić instalację tylko części pakietu. Komponenty mogą zawierać pliki, katalogi, komponenty COM, klucze rejestru Windows, skróty i inne dane. Użytkownik końcowy nie oddziałuje bezpośrednio z komponentami.
Komponenty są identyfikowane globalnie przez identyfikatory GUID, także ten sam komponent może być współdzielony przez różne funkcje tego samego pakietu lub większej ilości pakietów, najlepiej przez użycie Merge Module (ang. moduł łączenia), jednak aby to działało, różne komponenty nie powinny współdzielić żadnych podkomponentów.
Ścieżka kluczowa
edytujŚcieżka kluczowa to określony plik, klucz rejestru lub źródło ODBC, które autor pakietu określa jako krytyczny dla danego komponentu. Ponieważ plik jest najczęstszym typem ścieżki kluczowej, często wykorzystuje się termin plik kluczowy. Komponent może zawierać najwięcej jedną ścieżkę kluczową, jeśli komponent takowej nie posiada, to za ścieżkę kluczową przyjmowany jest katalog docelowy komponentu. Kiedy aplikacja oparta na MSI jest uruchamiana, Windows Installer sprawdza istnienie tych krytycznych plików lub ścieżek rejestru (kluczowych ścieżek). Jeśli jest różnica między aktualnym stanem systemu i wartością określoną w pakiecie MSI (np. któryś z plików kluczowych zaginął), żądana funkcja jest przeinstalowywana. Ten proces znany jest także jako samonaprawa lub samoleczenie. Dwa komponenty nie powinny korzystać z tych samych ścieżek kluczowych.
Funkcje
edytujFunkcja to hierarchiczna grupa komponentów – funkcja może zawierać dowolną liczbę komponentów i innych funkcji (podfunkcji). Wiele pakietów oprogramowania zawiera tylko jedną funkcję. Bardziej złożone programy instalacyjne zwykle wyświetlają opcję instalacja użytkownika, aby dokładnie określić, jakie funkcje mają być zainstalowane lub usunięte.
Autor pakietu definiuje funkcje pakietu. Edytor tekstu może, na przykład, posiadać funkcje dla głównego programu, pliki pomocy i program do sprawdzania pisowni.
Fazy instalacji
edytujInterfejs użytkownika
edytujInterfejs użytkownika zwykle sprawdza system, na którym program ma być instalowany i umożliwia użytkownikowi zmianę różnych opcji, które wpłyną na instalację.
Zwykle jednak interfejs użytkownika nie powinien czynić żadnych zmian. Powody mogą być takie:
- Użytkownik chce zainstalować pakiet MSI w trybie cichym, pomijając tę fazę całkowicie, przez uruchomienie programu msiexec.exe z przełącznikiem /qn i określając wszystkie informacje, które instalator by normalnie zbierał w linii poleceń.
- Podobnie, klikając przycisk Usuń w panelu sterowania uruchamia dezinstalator programu z podstawowym interfejsem użytkownika. W tym przypadku akcje określone w interfejsie użytkownika nie zostaną wykonane.
- Akcje, które czynią zmiany w systemie, nie powinny być planowane w interfejsie użytkownika, gdyż ten uruchamia się z uprawnieniami użytkownika (bez uprawnień podwyższonych).
Akcje w interfejsie użytkownika w sekwencji zwykłej instalacji są określone w tabeli InstallUISequence. Podobnie, jest też struktura AdminUISequence, w której można umieścić okna dialogowe i akcje do wyświetlenia i wykonania z kreatora administracyjnego.
Wykonanie
edytujKiedy użytkownik kliknie guzik Zakończ lub Instaluj w typowym kreatorze instalacji, instalacja wchodzi w etap wykonania, w której komponenty oprogramowania są właściwie instalowane. Faza wykonania czyni zmiany systemowe, ale nie wyświetla żadnych elementów interfejsu użytkownika.
Faza wykonania ma miejsce w dwóch etapach.
Tryb bezpośredni. W tym etapie Windows Installer otrzymuje instrukcje, od użytkownika lub aplikacji, aby instalować lub odinstalować funkcje produktu. Te żądania powodują wykonanie sekwencji akcji, które zapytują bazę danych instalacji, by ta stworzyła wewnętrzny skrypt, szczegółowo opisujący fazę wykonania.
Tryb opóźniony. W tym etapie skrypt utworzony w trybie bezpośrednim jest wykonywany w kontekście uprzywilejowanej usługi Instalator Windows (dokładnie konto LocalSystem). Skrypt musi być wykonany przez uprzywilejowane konto ze względu na różnorodność środowisk, w których rozpoczyna się operacja instalacji, na przykład wyższe uprawnienia są niezbędne do obsługi żądań instalacji od nieuprzywilejowanych użytkowników.
Sekwencje akcji dla normalnej instalacji są przechowywane w tabeli InstallExecuteSequence. Baza danych MSI może także zawierać tabele AdminExecuteSequence i AdvtExecuteSequence, aby zdefiniować akcje do wykonania podczas instalacji w trybie administracyjnym lub instalacji typu „zainstaluj przy pierwszym użyciu” (ang. advertised installation).
Wycofywanie zmian
edytujOperacje instalacji są operacjami transakcyjnymi[2]. Dla każdej operacji wykonywanej przez Windows Installer generowana jest operacja, która odwraca zmiany tej operacji. W razie gdyby jakiś skrypt akcji popełnił błąd lub operacja została anulowana przez użytkownika, operacje wykonywane do tego czasu są odwracane, przywracając system do jego poprzedniego stanu. Standardowe akcje Windows Install automatycznie zapisują te informacje do skryptu wycofywania zmian, autorzy pakietów, którzy tworzą własne akcje, które zmieniają system, także tworzą odpowiednie akcje wycofywania. Ten mechanizm może prowadzić do zaskakującej sytuacji, w której niepoprawna dezinstalacja prowadzi do efektywnego przeinstalowania aplikacji.
Historia wydań
edytujWersja | Dostępny natywnie[3] | Dostępny jako dodatek |
---|---|---|
1.0 | Office 2000 | n.d. |
1.1 | Windows 2000 RTM, SP1, SP2 | Windows 95, Windows 98 Windows NT 4.0 |
1.2 | Windows Me | n.d. |
2.0 | Windows XP RTM, SP1 Windows 2000 SP3, SP4 Windows Server 2003 RTM |
Windows 9x Windows NT 4.0 Windows 2000 |
3.0 | Windows XP SP2 | Windows 2000 Windows XP Windows Server 2003 |
3.1 | Windows XP SP3 Windows Server 2003 SP1, SP2 Windows XP Professional x64 Edition |
Windows 2000 Windows XP Windows Server 2003 |
4.0 | Windows Vista RTM, SP1 Windows Server 2008 RTM |
n.d. |
4.5[4] | Windows Vista SP2 Windows Server 2008 SP2 |
Windows XP Windows Server 2003 Windows XP Professional x64 Edition Windows Vista Windows Server 2008[3] |
5.0 | Windows 7 i nowsze Windows Server 2008 R2 i nowsze |
n.d. |
W październiku 2018 r. Microsoft ogłosił format MSIX jako następcę Instalatora Windows[5].
Przypisy
edytujLinki zewnętrzne
edytuj- Windows installer start page
- Windows Installer 4.5 expected around Q2-2008 (blog)
- The Microsoft MSI FAQ. microsoft.com. [zarchiwizowane z tego adresu (2007-01-12)].
- Windows Installer Team Blog na MSDN.