Udostępnij za pośrednictwem


Budynek ICE

Jeśli nie możesz odnaleźć wewnętrznych ewaluatorów spójności potrzebujesz spośród istniejących akcji niestandardowych ICE wymienionych w ICE Reference, musisz przygotować własne ice do zweryfikowania pakietu.

Podczas tworzenia akcji niestandardowych ICE należy wykonać następujące czynności:

  • ICEs bazuje tylko na niestandardowych akcjach typów wymienionych w wyświetlonej tabeli.
  • Wywołaj MsiProcessMessage i wyślij wiadomość typu INSTALLMESSAGE_USER. Podczas tworzenia komunikatów ICE postępuj zgodnie z formatem komunikatu w wytycznych dotyczących komunikatów ICE.
  • Napisz swoje ICE tak, aby przechwytywało błędy API i zawsze zwracało ERROR_SUCCESS. Jest to konieczne, aby umożliwić wykonywanie kolejnych akcji niestandardowych po awarii ice.

Akcje niestandardowe ICE są ograniczone do następujących typów akcji niestandardowych.

Niestandardowy typ akcji Opis
niestandardowy typ akcji 1 Biblioteka DLL w strumieniu binarnym
niestandardowy typ akcji 2 EXE w strumieniu binarnym
Niestandardowy Typ Akcji 5 JScript w strumieniu binarnym
niestandardowy typ działania 6 VbScript w strumieniu binarnym
Niestandardowy Typ Akcji 37 Kod JScript jako ciąg
niestandardowy typ akcji 38 Kod VBScript jako ciąg

 

Podczas opracowywania niestandardowej akcji ICE nie należy wykonywać następujących działań:

  • Nie należy zakładać, że uchwyt do silnika, który ICE otrzymuje, jest wystąpieniem instalacji bazy danych instalatora. Jeśli nie jest to wystąpienie instalacji, niektóre właściwości nie są zdefiniowane, katalogi źródłowe i docelowe nie są rozpoznawane, a bieżące stany funkcji nie są zdefiniowane.
  • Nie należy polegać na wcześniejszym wykonaniu lub niewykonaniu akcji instalatora, akcji niestandardowej ani innej akcji ICE. Ponieważ wcześniejsze procesy ICE mogły utworzyć kolumny tymczasowe w dowolnej tabeli, autorzy powinni, gdy to możliwe, odnosić się do kolumn według nazwy. Przed zakończeniem operacji ICEs należy wyczyścić wszystkie tymczasowe kolumny lub tabele.
  • Nie zakładaj, że autorzy mają dostęp do obrazu katalogu źródłowego bazy danych.
  • Nie zakładaj, że zmiany wprowadzone w bazie danych nie są utrwalane.

przykład ICE w języku C++

Przykład ICE w języku VBScript