Freigeben über


VSPackage-Registrierung

VSPackages müssen Visual Studio darüber informieren, dass sie installiert sind und geladen werden sollten. Dieser Vorgang erfolgt durch Schreiben von Informationen in der Registrierung. Das ist eine typische Aufgabe eines Installers.

Hinweis

Es ist eine akzeptierte Praxis während der VSPackage-Entwicklung, um die Selbstregistrierung zu verwenden. Visual Studio Industry Partner (VSIP)-Programmpartner können ihre Produkte jedoch nicht mit der Selbstregistrierung als Teil der Einrichtung versenden.

Registrierungseinträge in einem Windows Installer-Paket werden in der Regel in der Registrierungstabelle erstellt. Sie können dateierweiterungen auch in der Registrierungstabelle registrieren. Windows Installer bietet jedoch integrierte Unterstützung über die Programmkennung (ProgId), Klassen-, Erweiterungs- und Verbtabellen. Weitere Informationen finden Sie unter "Datenbanktabellen".

Stellen Sie sicher, dass Ihre Registrierungseinträge der Komponente zugeordnet sind, die für Ihre ausgewählte Parallelstrategie geeignet ist. Registrierungseinträge für eine freigegebene Datei sollten beispielsweise der Windows Installer-Komponente dieser Datei zugeordnet werden. Ebenso sollten Registrierungseinträge für eine versionsspezifische Datei der Komponente dieser Datei zugeordnet werden. Andernfalls könnte das Installieren oder Deinstallieren des VSPackage für eine Version von Visual Studio ihr VSPackage in anderen Versionen unterbrechen. Weitere Informationen finden Sie unter Unterstützen mehrerer Versionen von Visual Studio.

Hinweis

Die einfachste Möglichkeit zum Verwalten der Registrierung besteht darin, die gleichen Daten in denselben Dateien sowohl für die Entwicklerregistrierung als auch für die Installationszeitregistrierung zu verwenden. Beispielsweise können einige Installer-Entwicklungstools die Datei im REG-Format zur Buildzeit nutzen. Wenn Entwickler REG-Dateien für ihre eigene tägliche Entwicklung und das Debuggen Standard, können diese Dateien automatisch in das Installationsprogramm aufgenommen werden. Wenn Sie registrierungsdaten nicht automatisch freigeben können, müssen Sie sicherstellen, dass die Kopie der Registrierungsdaten des Installers aktuell ist.

Registrieren nicht verwalteter VSPackages

Nicht verwaltete VSPackages (einschließlich der von der Visual Studio-Paketvorlage generierten) verwenden ATL-Formatvorlagen.rgs-Dateien zum Speichern von Registrierungsinformationen. Das RGS-Dateiformat ist spezifisch für ATL und kann in der Regel nicht wie von einem Tool für die Erstellung von Installationen verwendet werden. Registrierungsinformationen für das VSPackage-Installationsprogramm müssen separat Standard beibehalten werden. Beispielsweise können Entwickler Dateien im REG-Format mit RGS-Dateiänderungen synchronisieren. Die REG-Dateien können mit RegEdit für Entwicklungsarbeiten zusammengeführt oder von einem Installationsprogramm genutzt werden.

Registrieren von verwalteten VSPackages

Das RegPkg-Tool liest die Registrierungsattribute aus einem verwalteten VSPackage und kann entweder die Informationen direkt in die Registrierung schreiben oder REG-Format-Dateien schreiben, die von einem Installationsprogramm verwendet werden können.

Hinweis

Das RegPkg-Tool ist nicht weiterverteilbar und kann nicht verwendet werden, um ein VSPackage im System eines Benutzers zu registrieren.

Warum VSPackages zur Installation nicht selbst registrieren sollten

Ihre VSPackage-Installationsprogramme sollten sich nicht auf die Selbstregistrierung verlassen. Auf den ersten Blick scheint die Beibehaltung der Registrierungswerte eines VSPackage nur im VSPackage selbst eine gute Idee. Da Entwickler die Registrierungswerte für ihre Routinearbeit und -tests benötigen, ist es sinnvoll, Standard eine separate Kopie der Registrierungsdaten im Installationsprogramm zu vermeiden. Das Installationsprogramm kann sich auf das VSPackage selbst verlassen, um Registrierungswerte zu schreiben.

Obwohl die Selbstregistrierung theoretisch gut ist, weist die Selbstregistrierung mehrere Fehler auf, die sie für die VSPackage-Installation ungeeignet machen:

  • Zur ordnungsgemäßen Unterstützung von Installations-, Deinstallations-, Installationsrollback- und Deinstallationsrollbacks müssen Sie vier benutzerdefinierte Aktionen für jedes verwaltete VSPackage erstellen, das sich durch Aufrufen von RegPkg selbst registriert.

  • Ihr Ansatz zur parallelen Unterstützung erfordert möglicherweise, dass Sie vier benutzerdefinierte Aktionen erstellen, die RegSvr32 oder RegPkg für jede unterstützte Version von Visual Studio aufrufen.

  • Eine Installation mit selbst registrierten Modulen kann nicht sicher zurückgesetzt werden, da es keine Möglichkeit gibt, zu informieren, ob die selbst registrierten Schlüssel von einem anderen Feature oder einer anderen Anwendung verwendet werden.

  • Selbst registrierte DLLs verknüpfen manchmal mit Hilfs-DLLs, die nicht vorhanden sind oder die falsche Version sind. Im Gegensatz dazu kann Windows Installer DLLs mithilfe der Registrierungstabellen ohne Abhängigkeit vom aktuellen Zustand des Systems registrieren.

  • Selbstregistrierungscode kann der Zugriff auf Netzwerkressourcen, z. B. Typbibliotheken, verweigert werden, wenn eine Komponente sowohl als "run-from-source" angegeben ist als auch in der SelfReg-Tabelle aufgeführt ist. Dies kann dazu führen, dass die Installation der Komponente während einer Administratorinstallation fehlschlägt.