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 eine Datei im .reg-Format zur Build-Zeit nutzen. Wenn Entwickler .reg Dateien für ihre tägliche Entwicklung und das Debuggen verwalten, 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 von nicht verwalteten VSPackages

Nicht verwaltete VSPackages (einschließlich der von der Visual Studio-Paketvorlage generierten) verwenden .rgs-Dateien im ATL-Stil zur Speicherung von Registrierungsinformationen. Das RGS-Dateiformat ist spezifisch für ATL und kann in der Regel nicht von einem Tool für die Installationserstellung as-is verwendet werden. Registrierungsinformationen für das VSPackage-Installationsprogramm müssen separat verwaltet werden. Entwickler können z. B. 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 Formatdateien schreiben, die von einem Installationsprogramm genutzt 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 sich bei der 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, 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:

  • Für die ordnungsgemäße Unterstützung von Installation, Deinstallation, Installationsrollback und Deinstallationsrollback müssen vier benutzerdefinierte Aktionen für jedes verwaltete VSPackage erstellt werden, das sich durch den Aufruf 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.

  • Dem Self-Registrierungscode kann der Zugriff auf Netzwerkressourcen, wie zum Beispiel 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.