Udostępnij za pośrednictwem


Rejestracja pakietu VSPackage

Pakiety VSPackage muszą poinformować program Visual Studio, że są zainstalowane i powinny zostać załadowane. Ten proces jest realizowane przez zapisanie informacji w rejestrze. Jest to typowe zadanie instalatora.

Uwaga

Jest to akceptowana praktyka podczas opracowywania pakietów VSPackage w celu korzystania z rejestracji samodzielnej. Jednak partnerzy programu Visual Studio Industry Partner (VSIP) nie mogą dostarczać swoich produktów przy użyciu rejestracji samodzielnej w ramach konfiguracji.

Wpisy rejestru w pakiecie Instalatora Windows są zazwyczaj tworzone w tabeli Rejestru. Rozszerzenia plików można również zarejestrować w tabeli Rejestru. Jednak Instalator Windows zapewnia wbudowaną obsługę za pośrednictwem identyfikatora programowego (ProgId), klasy, rozszerzenia i tabel czasowników. Aby uzyskać więcej informacji, zobacz Tabele bazy danych.

Upewnij się, że wpisy rejestru są skojarzone z składnikiem odpowiednim dla wybranej strategii równoległej. Na przykład wpisy rejestru dla udostępnionego pliku powinny być skojarzone ze składnikiem Instalatora Windows tego pliku. Podobnie wpisy rejestru dla pliku specyficznego dla wersji powinny być skojarzone ze składnikiem tego pliku. W przeciwnym razie zainstalowanie lub odinstalowanie pakietu VSPackage dla jednej wersji programu Visual Studio może spowodować przerwanie pakietu VSPackage w innych wersjach. Aby uzyskać więcej informacji, zobacz Obsługa wielu wersji programu Visual Studio.

Uwaga

Najprostszym sposobem zarządzania rejestracją jest użycie tych samych danych w tych samych plikach zarówno w przypadku rejestracji deweloperów, jak i rejestracji w czasie instalacji. Na przykład niektóre narzędzia do programowania instalatora mogą używać pliku w formacie reg w czasie kompilacji. Jeśli deweloperzy utrzymują pliki reg na potrzeby codziennego tworzenia i debugowania, te same pliki mogą być automatycznie uwzględniane w instalatorze. Jeśli nie możesz automatycznie udostępniać danych rejestracji, upewnij się, że kopia instalatora danych rejestracji jest aktualna.

Rejestrowanie niezarządzanych pakietów VSPackage

Niezarządzane pakiety VSPackage (w tym wygenerowane przez szablon pakietu programu Visual Studio) używają plików rgs w stylu ATL do przechowywania informacji o rejestracji. Format pliku rgs jest specyficzny dla ATL i zazwyczaj nie można go używać, ponieważ jest to narzędzie do tworzenia instalacji. Informacje o rejestracji instalatora pakietu VSPackage muszą być przechowywane oddzielnie. Na przykład deweloperzy mogą przechowywać pliki w formacie reg zsynchronizowane ze zmianami plików rgs. Pliki reg można scalić z elementem RegEdit na potrzeby prac programistycznych lub używanych przez instalatora.

Rejestrowanie zarządzanych pakietów VSPackage

Narzędzie RegPkg odczytuje atrybuty rejestracji z zarządzanego pakietu VSPackage i może zapisywać informacje bezpośrednio w rejestrze lub zapisywać pliki w formacie reg, które mogą być używane przez instalatora.

Uwaga

Narzędzie RegPkg nie jest redystrybucyjne i nie może służyć do rejestrowania pakietu VSPackage w systemie użytkownika.

Dlaczego pakiety VSPackage nie powinny być rejestrowane samodzielnie w czasie instalacji

Instalatory pakietu VSPackage nie powinny polegać na samodzielnej rejestracji. Na pierwszy rzut oka zachowanie wartości rejestru pakietu VSPackage tylko w samym programie VSPackage wydaje się dobrym pomysłem. Ze względu na to, że deweloperzy potrzebują wartości rejestru dostępnych do rutynowej pracy i testowania, warto unikać utrzymywania oddzielnej kopii danych rejestru w instalatorze. Instalator może polegać na samym programie VSPackage do zapisywania wartości rejestru.

Chociaż dobrze w teorii, samodzielna rejestracja ma kilka wad, które sprawiają, że nie nadaje się do instalacji pakietu VSPackage:

  • Poprawne obsługa instalacji, odinstalowywania, wycofywania instalacji i wycofywania dezinstalacji wymaga utworzenia czterech akcji niestandardowych dla każdego zarządzanego pakietu VSPackage, który samodzielnie rejestruje się przez wywołanie regPkg.

  • Podejście do obsługi równoległej może wymagać utworzenia czterech akcji niestandardowych, które wywołują regSvr32 lub RegPkg dla każdej obsługiwanej wersji programu Visual Studio.

  • Instalacja z własnymi modułami nie może zostać bezpiecznie wycofana, ponieważ nie ma możliwości poinformowania, czy klucze zarejestrowane samodzielnie są używane przez inną funkcję lub aplikację.

  • Biblioteki DLL zarejestrowane samodzielnie czasami łączą się z pomocniczymi bibliotekami DLL, które nie są obecne lub są niewłaściwą wersją. Z kolei Instalator Windows może rejestrować biblioteki DLL przy użyciu tabel rejestru bez zależności od bieżącego stanu systemu.

  • Kod rejestracji samodzielnej można odmówić dostępu do zasobów sieciowych, takich jak biblioteki typów, jeśli składnik jest określony jako element run-from-source i jest wymieniony w tabeli SelfReg. Może to spowodować niepowodzenie instalacji składnika podczas instalacji administracyjnej.