Udostępnij przez


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 / Notatka

Jest to akceptowana praktyka podczas opracowywania pakietów VSPackage w celu korzystania z samorejestracji. 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 systemowego. 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 / Notatka

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 programistyczne instalatora mogą używać pliku w formacie .reg w czasie kompilacji. Jeśli deweloperzy utrzymują pliki .reg na potrzeby codziennego programowania 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że być używany as-is przez narzędzie do tworzenia instalacji. Informacje o rejestracji instalatora pakietu VSPackage muszą być przechowywane oddzielnie. Deweloperzy mogą na przykład przechowywać pliki w formacie .reg zsynchronizowane ze zmianami plików rgs. Pliki .reg można scalić z edytorem rejestru RegEdit do celów 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 / Notatka

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 rejestrować się automatycznie podczas 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 samodzielnej rejestracji może być odmówiony dostępu do zasobów sieciowych, takich jak biblioteki typów, jeśli składnik jest określony jako run-from-source i jest wymieniony w tabeli SelfReg. Może to spowodować niepowodzenie instalacji składnika podczas instalacji administracyjnej.