Udostępnij za pośrednictwem


Scenariusze instalacji pakietu VSPackage

Ważne jest, aby w celu zapewnienia elastyczności zaprojektować instalatora pakietu VSPackage. Na przykład może być konieczne zwolnienie poprawki zabezpieczeń w przyszłości lub zmiana strategii biznesowej, która wymaga dokładnej obsługi wersji równoległych.

W temacie Obsługa wielu wersji programu Visual Studio możesz zapoznać się z zaletami i problemami dotyczącymi obsługi równoległych instalacji programu Visual Studio z instalacjami udostępnionymi lub równoległymi pakietu VSPackage. Krótko mówiąc, pakiety VSPackage obok siebie zapewniają największą elastyczność obsługi nowych funkcji programu Visual Studio.

Scenariusze omówione w tym temacie nie są jedynymi opcjami, ale są prezentowane jako sugerowane najlepsze rozwiązania.

Składniki, prywatność i udostępnianie

Niezależna od składników

Po zidentyfikowaniu i wypełnieniu składnika przypisz GUIDelement i wdróż go, nie można zmienić jego składu. Jeśli zmienisz skład składnika, wynikowy składnik musi być nowym składnikiem z nowym GUIDskładnikiem . Biorąc pod uwagę te fakty, największa elastyczność przechowywania wersji jest zapewniana przez uczynienie każdego składnika niezależnym, zależnym od siebie jednostką. Aby uzyskać więcej informacji o regułach dotyczących składników, zobacz Zmienianie kodu składnika i Co się stanie, jeśli reguły składników są uszkodzone?.

Nie mieszaj zasobów udostępnionych i prywatnych w składniku

Zliczanie odwołań odbywa się na poziomie składnika. W związku z tym mieszanie udostępnionych i prywatnych zasobów w jednym składniku uniemożliwia aktualizowanie zasobów prywatnych, takich jak plik wykonywalny, bez zastępowania zasobów udostępnionych. Ten scenariusz tworzy problemy ze zgodnością z poprzednimi wersjami i ogranicza tworzenie funkcji równoległych.

Na przykład wartości rejestru używane do rejestrowania pakietu VSPackage za pomocą zestawu Visual Studio SDK powinny być przechowywane w składniku oddzielnym od wartości użytej do zarejestrowania pakietu VSPackage w programie Visual Studio. Udostępnione pliki lub wartości rejestru idą w jeszcze innym składniku.

Scenariusz 1. Współużytkowany pakiet VSPackage

W tym scenariuszu udostępniony pakiet VSPackage (pojedynczy plik binarny obsługujący wiele wersji programu Visual Studio jest dostarczany w pakiecie Instalatora Windows. Rejestrowanie w każdej wersji programu Visual Studio jest kontrolowane przez funkcje do wyboru przez użytkownika. Oznacza to również, że po przypisaniu do oddzielnych funkcji każdy składnik można wybrać indywidualnie do instalacji lub odinstalowania, co pozwala użytkownikowi kontrolować integrację pakietu VSPackage z różnymi wersjami programu Visual Studio. (Zobacz Funkcje Instalatora Windows, aby uzyskać więcej informacji na temat korzystania z funkcji w pakietach Instalatora Windows.

VS Shared VSPackage installer

Jak pokazano na ilustracji, składniki udostępnione są częścią funkcji Feat_Common, która jest zawsze instalowana. Dzięki uwidocznieniu funkcji Feat_VS2002 i Feat_VS2003 użytkownicy mogą wybrać w czasie instalacji, do których wersji programu Visual Studio chcą zintegrować pakiet VSPackage. Użytkownicy mogą również używać trybu konserwacji Instalatora Windows do dodawania lub usuwania funkcji, co w tym przypadku powoduje dodanie lub usunięcie informacji o rejestracji pakietu VSPackage z różnych wersji programu Visual Studio.

Uwaga

Ustawienie kolumny Wyświetlanie funkcji na wartość 0 powoduje ukrycie jej. Wartość kolumny niskiego poziomu, taka jak 1, gwarantuje, że będzie ona zawsze zainstalowana. Aby uzyskać więcej informacji, zobacz INSTALLLEVEL, właściwość i tabela funkcji.

Scenariusz 2. Udostępniona aktualizacja pakietu VSPackage

W tym scenariuszu jest dostarczana zaktualizowana wersja instalatora pakietu VSPackage w scenariuszu 1. Ze względu na dyskusję aktualizacja dodaje obsługę programu Visual Studio, ale może to być również prostsza poprawka zabezpieczeń lub dodatek Service Pack z poprawką usterek. Reguły Instalatora Windows dotyczące instalowania nowszych składników wymagają, aby niezmienione składniki już w systemie nie zostały skopiowane. W takim przypadku system w wersji 1.0 już obecny zastąpi zaktualizowany składnik Comp_MyVSPackage.dll i pozwoli użytkownikom dodać nową funkcję Feat_VS2005 ze swoim składnikiem Comp_VS2005_Reg.

Uwaga

Za każdym razem, gdy pakiet VSPackage jest współużytkowany przez wiele wersji programu Visual Studio, ważne jest, aby kolejne wersje pakietu VSPackage zachowały zgodność z poprzednimi wersjami programu Visual Studio. Jeśli nie można zachować zgodności z poprzednimi wersjami, należy używać pakietów VSPackage równoległych. Aby uzyskać więcej informacji, zobacz Obsługa wielu wersji programu Visual Studio.

VS Shared VS Package Update installer

W tym scenariuszu przedstawiono nowy instalator pakietu VSPackage, korzystając z obsługi instalatora Windows w przypadku drobnych uaktualnień. Użytkownicy po prostu instalują wersję 1.1 i uaktualnia ją w wersji 1.0. Nie jest jednak konieczne posiadanie wersji 1.0 w systemie. Ten sam instalator zainstaluje wersję 1.1 w systemie bez wersji 1.0. Zaletą zapewniania drobnych uaktualnień w ten sposób jest to, że nie trzeba przechodzić przez prace nad opracowaniem instalatora uaktualnienia i instalatora pełnego produktu. Jeden instalator wykonuje oba zadania. Poprawka zabezpieczeń lub dodatek Service Pack mogą zamiast tego korzystać z poprawek Instalatora Windows. Aby uzyskać więcej informacji, zobacz Patching and Upgrades (Poprawki i uaktualnienia).

Scenariusz 3. Pakiet VSPackage równoległy

W tym scenariuszu przedstawiono dwa instalatory pakietów VSPackage — jedną dla każdej wersji programu Visual Studio .NET 2003 i Visual Studio. Każdy instalator instaluje pakiet VSPackage równoległy lub prywatny (specjalnie skompilowany i zainstalowany dla określonej wersji programu Visual Studio). Każdy pakiet VSPackage znajduje się we własnym składniku. W związku z tym każdy może być indywidualnie serwisowany przy użyciu poprawek lub wydań konserwacji. Ponieważ biblioteka DLL pakietu VSPackage jest teraz specyficzna dla wersji, można bezpiecznie dołączyć informacje o rejestracji w tym samym składniku co biblioteka DLL.

VS Side-by-Side VS Package installer

Każdy instalator zawiera również kod udostępniony między dwoma instalatorami. Jeśli kod udostępniony jest zainstalowany w wspólnej lokalizacji, zainstalowanie obu plików msi spowoduje zainstalowanie kodu udostępnionego tylko raz. Drugi instalator tylko zwiększa liczbę odwołań w składniku. Liczba odwołań gwarantuje, że jeśli jeden z pakietów VSPackage zostanie odinstalowany, udostępniony kod pozostanie dla innego pakietu VSPackage. Jeśli drugi pakiet VSPackage zostanie również odinstalowany, kod udostępniony zostanie usunięty.

Scenariusz 4. Aktualizacja pakietu VSPackage równoległego

W tym scenariuszu pakiet VSPackage dla programu Visual Studio cierpiał na lukę w zabezpieczeniach i musisz wydać aktualizację. Podobnie jak w scenariuszu 2, można utworzyć nowy plik msi, który aktualizuje istniejącą instalację w celu uwzględnienia poprawki zabezpieczeń, a także wdrożyć nowe instalacje z poprawką zabezpieczeń już w miejscu.

W takim przypadku pakiet VSPackage jest zarządzanym pakietem VSPackage zainstalowanym w globalnej pamięci podręcznej zestawów (GAC). Podczas ponownego kompilowania poprawki zabezpieczeń należy zmienić część numeru poprawki zestawu. Informacje dotyczące rejestracji nowego numeru wersji zestawu zastępują poprzednią wersję, co powoduje załadowanie zestawu stałego programu Visual Studio.

VS Side-by-Side VS Package Update installer

Aby uzyskać więcej informacji na temat wdrażania zestawów równoległych, zobacz Upraszczanie wdrażania i rozwiązywania problemów z biblioteką DLL Hell przy użyciu programu .NET Framework.