Udostępnij przez


Sekwencjonowanie poprawek

Począwszy od Instalatora Windows 3.0, autorzy mogą dodawać informacje sekwencjonowania poprawek do bazy danych pakietów poprawek w tabeli MsiPatchSequence. Instalator może użyć tych informacji, aby określić, które poprawki mają zastosowanie do pakietu instalacyjnego, aby określić najlepszą sekwencję poprawek i zainstalować poprawki w stałej kolejności niezależnie od kolejności, w jakiej są dostarczane do systemu.

Instalator Windows 2.0: Nieobsługiwany. Wersje Instalatora Windows wcześniejsze niż Instalator Windows 3.0 instalują poprawki w kolejności, w której są one udostępniane systemowi, niezależnie od tego, czy zawierają tabelę MsiPatchSequence.

Do korzystania z funkcji sekwencjonowania poprawek wymagane są następujące elementy.

  • pakiety poprawek (pliki msp) muszą mieć tabelę MsiPatchSequence zawierającą informacje dotyczące sekwencjonowania. Instalator instaluje poprawki, które nie mają tabeli MsiPatchSequence, w kolejności, w jakiej są podawane do systemu.
  • Poprawki są instalowane przy użyciu Instalatora Windows 3.0 lub nowszego.

Instalator Windows w wersji 3.0 ma następujące funkcje, których aplikacje mogą używać do określania najlepszej sekwencji poprawek.

  • Funkcja MsiDeterminePatchSequence pobiera listę poprawek i określa, w jakiej kolejności można zastosować je do zainstalowanego produktu. Ta funkcja odpowiada wszystkim poprawkom lub produktom, które zostały już zainstalowane w systemie.
  • Funkcja MsiDetermineApplicablePatches pobiera listę poprawek i określa, w jakiej kolejności można zastosować je do zainstalowanego produktu. Ta funkcja nie uwzględnia żadnych poprawek ani produktów, które zostały już zainstalowane w systemie.

Instalator Windows w wersji 3.0 może zastosować wiele poprawek do produktu w jednej instalacji poprawek. Grupa poprawek może zawierać takie, które obejmują informacje o sekwencji poprawek (tabela MsiPatchSequence) oraz takie, które ich nie zawierają. Instalator Windows instaluje pakiety poprawek bez tej tabeli w kolejności, w której są one dostarczane do systemu. Instalator uwzględnia pakiety poprawek, które nie mają tabeli MsiPatchSequence, ale zostały oznaczone jako przestarzałe lub zastąpione pakiety poprawek metodą opisaną w następującej sekcji.

Gdy Instalator Windows w wersji 3.0 instaluje wiele poprawek, wykonuje następujące kroki, aby określić sekwencję, w której poszczególne poprawki są stosowane do produktu:

  1. Zainstalowane poprawki bez tabeli MsiPatchSequence zostają umieszczone w kolejności, w której zostały zastosowane do produktu. Pierwsza zastosowana poprawka jest umieszczana jako pierwsza w sekwencji.

  2. Nowe poprawki, które nie zawierają tabeli MsiPatchSequence , są umieszczane w sekwencji. Te poprawki są stosowane przez bieżącą instalację poprawek. Są one umieszczane w kolejności, w której są dostarczane do systemu i umieszczane po wszystkich poprawkach w kroku 1.

  3. Przestarzałe poprawki są usuwane z sekwencji poprawek.

    Notatka

    Pakiet poprawek może określić w właściwości Podsumowanie numeru rewizji jawną listę przestarzałych poprawek, które mają zostać usunięte przez poprawkę. Ta lista jest przeznaczona do użytku przez wersje Instalatora Windows starsze niż wersja 3.0. Instalator Windows w wersji 3.0 usuwa poprawki oznaczone jako nieaktualne z sekwencji, tylko jeśli poprawki nie zawierają tabeli MsiPatchSequence.

     

  4. Instalator wykonuje kroki przez sekwencję stosowania poprawek i określa, które poprawki mają zastosowanie w danej sekwencji. Po zastosowaniu wielu poprawek do produktu każda kolejna poprawka w sekwencji przekształca również bazę danych instalacyjnych (plik.msi). Poprawka ma zastosowanie w określonej sekwencji tylko wtedy, gdy jej transformacja bazy danych jest w stanie zaakceptować kod produktu , wersję , język oraz kod uaktualnienia , które wynikają z zastosowania przekształceń wszystkich poprzednich pakietów poprawek do bazy danych produktu. Instalator eliminuje wszelkie nieodpowiednie poprawki z sekwencji.

  5. Instalator rozpoczyna umieszczanie poprawek, które zawierają informacje dotyczące sekwencjonowania w tabeli MsiPatchSequence. drobne uaktualnienia poprawki, które mają tabelę MsiPatchSequence, są umieszczane w sekwencji po sekwencjonowaniu poprawek, które zostały sekwencjonowane w poprzednich krokach i w kolejności od najniższych do najwyższych wersji produktu po uaktualnieniu. Instalator Windows eliminuje następnie wszelkie drobne poprawki uaktualnienia, które są niestosowalne w tej sekwencji.

  6. Poprawki małych aktualizacji przeznaczone dla drobnych aktualizacji posiadających tabelę MsiPatchSequence są przypisywane do najwyższej wersji poprawki drobnej aktualizacji w sekwencji.

  7. Wszystkie małe poprawki aktualizacji, które pozostają nieprzypisane po poprzednich krokach i które mają tabelę MsiPatchSequence, są umieszczane w sekwencji przed pierwszą drobną aktualizacją, która ma tabelę MsiPatchSequence. Następują one po .msi bazie danych instalacji i wszelkich poprawkach bez tabeli MsiPatchSequence. Instalator Windows eliminuje następnie wszelkie małe poprawki aktualizacji, które są niestosowalne w tej sekwencji.

  8. Instalator Windows w wersji 3.0 eliminuje zastąpione poprawki z sekwencji. Gdy poprawka zastępuje poprawki, które występują wcześniej w sekwencji poprawek, poprawka zawiera wszystkie poprawki we wcześniejszych poprawkach. Wcześniejsze poprawki nie są już wymagane. Instalator Windows wymaga informacji w tabeli MsiPatchSequence w celu wyeliminowania zastąpionych poprawek.

    Notatka

    Poprawki przeznaczone do zastępowania wcześniejszego zestawu poprawek muszą być tworzone, aby zastąpić wcześniejsze poprawki we wszystkich rodzinach poprawek. małe poprawki aktualizacji mogą zastępować tylko małe aktualizacje. drobne uaktualnienia mogą zastąpić zarówno małe aktualizacje, jak i inne drobne uaktualnienia.

     

  9. małe aktualizacje, które zawierają tabele MsiPatchSequence, są ustalane dla wersji produktu zgodnie z informacjami sekwencjonowania zawartymi w tabelach MsiPatchSequence. Określa ostateczną sekwencję poprawek.

Poprawkę, która nie powinna być już używana, można wyeliminować z sekwencji poprawek. Aby uzyskać więcej informacji na temat eliminowania poprawek z sekwencji poprawek, zobacz Eliminowanie poprawek.

Aby zapoznać się z przykładem użycia tabeli MsiPatchSequence do stosowania poprawek w kolejności ich tworzenia, zobacz Przykład wielokrotnego stosowania poprawek.