Udostępnij za pośrednictwem


Zapobieganie wymaganiu dostępu poprawki do oryginalnego źródła instalacji

Nie można wyeliminować wszystkich okoliczności, w których zastosowanie poprawki może wymagać dostępu do oryginalnego źródła instalacji.

Przestrzegaj następujących kwestii, aby zminimalizować możliwość, że poprawka będzie wymagać dostępu do oryginalnego źródła:

  • Używaj poprawek tylko w całym pliku. Eliminuje to konieczność tworzenia poprawek binarnych dla wszystkich poprzednio wydanych wersji pliku. Należy pamiętać, że całe poprawki plików są zwykle większe niż poprawki binarne. Poprawkę można łatwo ustawić jako całą poprawkę pliku, tworząc właściwość IncludeWholeFilesOnly o wartości 1 (jeden) w pliku Właściwości tworzenia poprawek (PCP).
  • Upewnij się, że żadna z akcji niestandardowych nie uzyskuje dostępu do oryginalnej lokalizacji źródłowej.
  • Upewnij się, że akcja ResolveSource jest warunkowa, tak aby była uruchamiana tylko wtedy, gdy jest to konieczne, lub alternatywnie nie jest obecna.
  • Wypełnij tabeli MsiFileHash dla wszystkich niewersyfikowanych plików. Narzędzie Zestawu SDK Instalatora Windows, Msifiler.exe, może to łatwo zrobić dla ciebie.
  • Upewnij się, że wszystkie pliki mają poprawną wersję i informacje o języku. Narzędzie SDK Instalatora Windows Msifiler.exemoże to dla Ciebie łatwo zrobić.

Wymagania źródłowe podczas stosowania poprawek

Dostęp do oryginalnych źródeł instalacji może być wymagany do zastosowania poprawki w następujących przypadkach:

  • Poprawka ma zastosowanie do funkcji, która jest obecnie uruchamiana ze źródła. W tym przypadku funkcja zostanie przeniesiona ze stanu uruchamiania ze źródła do stanu lokalnego.

  • Poprawka ma zastosowanie do składnika, który ma brakujący lub uszkodzony plik.

  • Poprawka dotyczy pliku w składniku, który również zawiera pliki niewersjonowane, bez wpisów MsiFileHash. Wypełniona tabela MsiFileHash jest wymagana, aby zapobiec niepotrzebnemu kopiowaniu plików bez wersji z lokalizacji źródłowej.

  • Poprawka została zastosowana przy użyciu funkcji REINSTALLMODE amus lub emus. Ta opcja jest niebezpieczna, ponieważ wykonuje operacje kopiowania plików niezależnie od wersji pliku. Może to prowadzić do obniżenia wersji plików i prawie zawsze wymaga oryginału. Zalecana wartość REINSTALLMODE to omus.

  • Brak buforowanego pakietu dla produktu. Buforowany pakiet jest wymagany do zastosowania poprawki. Buforowany pakiet jest przechowywany w folderze %windir%\Installer.

  • Pakiet jest utworzony, aby wykonać wywołanie akcji ResolveSource . Ta akcja powinna być zwykle unikana lub odpowiednio warunkowa, ponieważ jego wykonywanie zawsze powoduje dostęp do źródła.

  • Pakiet ma akcję niestandardową, która próbuje uzyskać dostęp do źródła w jakiś sposób. Najczęstszym przykładem jest typ 23 współbieżnej akcji niestandardowej instalacji.

    Uwaga

    Instalacje współbieżne nie są zalecane w przypadku instalacji aplikacji przeznaczonych do wydania do publicznej wiadomości. Aby uzyskać informacje o instalacjach współbieżnych, zobacz concurrent installations.

     

  • Pakiet poprawek składa się z binarnych poprawek, które nie mają zastosowania do bieżącej wersji pliku na komputerze.

Rozważmy następujący przykład, w którym Instalator Windows wymaga dostępu do oryginalnego źródła podczas stosowania poprawki:

  1. Zainstaluj wersję RTM produktu Przykład.
  2. Zastosuj poprawkę Qfe1.msp do komputera. Ta poprawka aktualizuje wersję 1.0 Example.dll do wersji 1.1.
  3. Udostępniono nową poprawkę Qfe2.msp, która aktualizuje Example.dll do wersji 1.2 i czyni Qfe1.msp zbędną. Jednak poprawka została stworzona jedynie z myślą o wersji 1.0 Example.dll, ponieważ została wygenerowana przy użyciu wersji RTM produktu. Example.dll w wersji 1.2 zawiera poprawkę zawartą w Example.dll wersji 1.1, ale plik msp został wygenerowany między obrazami RTM i QFE2. Dlatego po zastosowaniu pliku Qfe2.msp na komputerze Instalator Windows musi uzyskać dostęp do oryginalnego źródła. Poprawka binarna dla Example.dll nie może mieć zastosowania do wersji 1.1; może dotyczyć tylko wersji 1.0. Spowoduje to ponowne skopiowanie przez Instalatora wersji 1.0 Example.dll z oryginalnej lokalizacji źródłowej, aby można było pomyślnie zastosować poprawkę.

Wymagania źródłowe podczas usuwania poprawki

Dostęp do oryginalnych źródeł instalacji może być wymagany do usunięcia poprawki, jeśli Instalator Windows nie przechowywał informacji o punkcie odniesienia dotyczących poprawki. Począwszy od Instalatora Windows 3.0 instalator selektywnie zapisuje informacje o plikach odniesienia podczas ich aktualizowania. Aby uzyskać więcej informacji na temat pamięci podręcznej bazowej, zobacz Zmniejszanie rozmiaru łat.