Windows Installer (Instalator Windows, uprzednio znany jako Microsoft Installer)when setup isn’t just xcopy. – 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 (późniejsze wersje tych produktów oparte są na Windows Installerze) i NSIS.

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 Pakiet 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 Pojedynczy, 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 Komponent 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 (ang. moduł łączenia), jednak aby to działało, różne komponenty nie powinny współdzielić żadnych podkomponentów.

Ścieżka kluczowa Ś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 Funkcja 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 Interfejs użytkownika Interfejs 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 Kiedy użytkownik kliknie guzik lub 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” ().

Wycofywanie zmian Operacje instalacji są operacjami transakcyjnymiRollback Installation.. 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ń Wersja Dostępny natywnieReleased Versions of Windows Installer. Dostępny jako dodatek 1.0 Office 2000 n.d. 1.1 Windows 2000 RTM, SP1, SP2 Windows 95, Windows 98Windows NT 4.0 1.2 Windows Me n.d. 2.0 Windows XP RTM, SP1Windows 2000 SP3, SP4Windows Server 2003 RTM Windows 9xWindows NT 4.0Windows 2000 3.0 Windows XP SP2 Windows 2000Windows XPWindows Server 2003 3.1 Windows XP SP3Windows Server 2003 SP1, SP2Windows XP Professional x64 Edition Windows 2000Windows XPWindows Server 2003 4.0 Windows Vista RTM, SP1Windows Server 2008 RTM n.d. 4.5What’s New in Windows Installer 4.5. Windows Vista SP2Windows Server 2008 SP2 Windows XPWindows Server 2003Windows XP Professional x64 EditionWindows VistaWindows Server 2008 5.0 Windows 7 i nowszeWindows Server 2008 R2 i nowsze n.d.

W październiku 2018 r. Microsoft ogłosił format MSIX jako następcę Instalatora WindowsMSIX Packaging Tool Released to the Microsoft Store..

Przypisy

Linki zewnętrzne Windows installer start page Windows Installer 4.5 expected around Q2-2008 (blog)

Windows Installer Team Blog na MSDN.

Kategoria:Windows Kategoria:Składniki systemu Windows